将变量参数列表传递给sprintf()

Rob*_*Rob 13 php parameters printf arguments

我想编写一个函数(除其他外)接受可变数量的参数,然后将它们传递给sprintf().

例如:

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

some_func("blah %d blah", $number);
?>
Run Code Online (Sandbox Code Playgroud)

我如何在PHP中执行此操作?

Ion*_*tan 25

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);
}
Run Code Online (Sandbox Code Playgroud)

$args临时变量是必要的,因为func_get_args不能在PHP之前的版本5.3函数的参数列表中使用.