我有很少的助手 - 我想将每个助手的方法重新声明为lambda匿名函数。
我正在尝试通过获取帮助器方法,然后执行eval函数,但它不会工作,我得到解析错误..
我目前的代码:
foreach($this->helpers as $helper)
{
include(master_path . 'helpers/'.$helper.'Helper.php');
$helperClass = new applicationHelper();
$methods = get_class_methods($helperClass);
foreach($methods as $method )
{
eval ( "\$$method = function (\$text) {
\$helperClass->$method(\$text);
}");
}
}
由于效率恐惧 - 如果您知道,我想要更好的解决方案,谢谢! 谢谢伙计们!
答案 0 :(得分:2)
这应该有效:
foreach($methods as $method )
{
$$method = function($text) use ($method, $helperClass) {
return $helperClass->$method($text);
}
}
但仍然不知道你为什么这样做。
修改强> 需要PHP 5.3.x - >看这里Anonymous funcions
答案 1 :(得分:0)