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