Php 如何在事先不知道的情况下将数组成员提取到单个参数中?

Php 如何在事先不知道的情况下将数组成员提取到单个参数中?,php,eval,Php,Eval,我为一个项目编写了某种全局记录器类,并希望通过一个helper函数访问内部log()-方法。log()方法使用vsprintf来实现简单的消息格式设置。这很好,但是现在我在将参数从helper函数传递到logger的log()方法时遇到了困难 在我看来,对这些参数字符串使用eval()应该可以实现我想要的功能。但不知何故,我不断地收到错误,如Logger.php(19):eval()中的Parse error:syntax error,unexpected',d第1行的代码 (生成的参数字符串看

我为一个项目编写了某种全局记录器类,并希望通过一个helper函数访问内部log()-方法。log()方法使用vsprintf来实现简单的消息格式设置。这很好,但是现在我在将参数从helper函数传递到logger的log()方法时遇到了困难

在我看来,对这些参数字符串使用
eval()
应该可以实现我想要的功能。但不知何故,我不断地收到错误,如Logger.php(19):eval()中的
Parse error:syntax error,unexpected',d第1行的代码
(生成的参数字符串看起来像
$args[0]、$args[1]、$args[2]

这不是
eval()
/参数传递的工作方式


你可能想要的是这样的东西。

我认为,这应该可以解决问题

function writeLog($severity, $message) {
    $args = func_get_args();
    $logger = Logger::getLogger();
    call_user_func_array(array(logger, 'log'), $args);
}
试试这个:

function writeLog($severity, $message) {
    $args = func_get_args();
    call_user_func_array(array(Logger::getLogger(), 'log'), $args)
}

医生:

谢谢,这正是我想要的。
function writeLog($severity, $message) {
    $args = func_get_args();
    call_user_func_array(array(Logger::getLogger(), 'log'), $args)
}