PHP-将多个参数传递给包含sprintf()的方法

PHP-将多个参数传递给包含sprintf()的方法,php,Php,我试图将多个参数传递给包含sprintf()方法的自定义方法。我传递的参数将在sprintf()方法中使用。有办法做到这一点吗?我尝试了下面的代码,但得到的参数太少 使用而不是sprintf()是任何解决方案的核心,因为您将参数作为数组传递: 如果您使用的是PHP5.6,并且可以使用variadics function myMethod($text, ...$args) { echo vsprintf($text, $args); } myMethod('"%s" is "%s" me

我试图将多个参数传递给包含sprintf()方法的自定义方法。我传递的参数将在sprintf()方法中使用。有办法做到这一点吗?我尝试了下面的代码,但得到的参数太少

使用而不是sprintf()是任何解决方案的核心,因为您将参数作为数组传递:

如果您使用的是PHP5.6,并且可以使用variadics

function myMethod($text, ...$args)
{
    echo vsprintf($text, $args);
}

myMethod('"%s" is "%s" method', 'This', 'my');
否则,你的朋友:

function myMethod($text)
{
    $args = func_get_args();
    array_shift($args); // remove $text argument from the $args array
    echo vsprintf($text, $args);
}

myMethod('"%s" is "%s" method', 'This', 'my');

或者您可以使用:
函数myMethod(){call_user_func_array('printf',func_get_args());}
。它很难看,但很有效。我不知道变量。谢谢:)@JovanPerovic-variadics需要PHP>=5.6,但是它们比func_get_args()更易于使用,特别是如果您有其他参数需要独立于args进行维护array@JovanPerovic-变量的另一面是在调用函数时使用“参数解包”,同样非常有用-绝对是:)我计划充分利用短数组语法的潜力(
v5.4
),我不担心:)
function myMethod($text)
{
    $args = func_get_args();
    array_shift($args); // remove $text argument from the $args array
    echo vsprintf($text, $args);
}

myMethod('"%s" is "%s" method', 'This', 'my');