Я написал какой-то глобальный класс logger для проекта и хочу получить доступ к внутреннему методу log () с помощью вспомогательной функции.Метод log () использует vsprintf для простого форматирования сообщений.Это работает нормально, но теперь я сталкиваюсь с трудностями при передаче параметров из вспомогательной функции в метод log () регистратора.
function writeLog($severity, $message)
{
$args = func_get_args();
$arg_string = '';
foreach ($args as $k => $v)
{
$arg_string .= '$args['.$k.'], ';
}
$arg_string = substr($arg_string, 0, -2);
Logger::getLogger()->log(eval($arg_string));
}
По моему мнению, использование eval()
для этих строк аргументов должночто я хочу.Но каким-то образом я продолжаю получать ошибки вроде Parse error: syntax error, unexpected ',' in Logger.php(19) : eval()'d code on line 1
(сгенерированные строки аргумента выглядят как $args[0], $args[1], $args[2]
)