문제

(무엇보다도)가 변수 수의 인수를 받아들이고 Sprintf ()로 전달하는 함수를 작성하고 싶습니다.

예를 들어:

<?php
function some_func($var) {
  // ...
  $s = sprintf($var, ...arguments that were passed...);
  // ...
}

some_func("blah %d blah", $number);
?>

PHP에서 어떻게해야합니까?

도움이 되었습니까?

해결책

function some_func() {
    $args = func_get_args();
    $s    = call_user_func_array('sprintf', $args);
}

// or

function some_func() {
    $args = func_get_args();
    $var  = array_shift($args);
    $s    = vsprintf($var, $args);
}

그만큼 $args 임시 변수가 필요합니다 func_get_args 5.3 이전에 PHP 버전의 기능 목록에 사용할 수 없습니다.

다른 팁

조합을 사용하십시오 func_get_args 그리고 call_user_func_array

function f($var) { // at least one argument
  $args = func_get_args();
  $s = call_user_func_array('sprintf', $args);
}

$ numargs = func_num_args (); 그리고 func_get_arg (i) 인수를 검색합니다

방법은 다음과 같습니다.

http://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list

기본적으로 매개 변수없이 평소와 같이 기능을 선언 한 다음 func_num_args ()를 호출하여 얼마나 많은 인수가 귀하를 통과했는지 확인한 다음 func_get_arg () 또는 func_get_args ()를 호출하여 각각을 얻습니다. 그것은 쉽다 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top