我想尝试这样的事情:
class helper {
.. some class variables ..
public function somehelper ($somevar)
{
.. some action ..
}
}
到 - $somehelper('somevar!')
我希望它是一个lambda函数,而不是我声明一个新的lambda函数。我希望自动创建代码。我想通过一个核心类自动创建这个lambda函数,该核心类将创建每个辅助函数 - 带函数名称的lambda函数。我不想指定它。我有一个模板文件,一个类助手的实例。 <a href..><?= $makeSeo($url); ?></a>
这将导致 - 帮助类中的公共函数makeSeo($url)
。 autmatically。
先谢谢了!
答案 0 :(得分:2)
听起来你想要一个给出方法名称的东西来创建一个lambda?假设你的'Helper'类方法是静态的,像这样的东西就可以了
function makeHelper($fn)
{
//note use of PHP5.3 closure syntax
$helper = function($param) use ($fn) {
return Helper::$fn($param);
};
return $helper;
}
//create a new lambda
$foo=makeHelper('somehelper');
//call it...
$foo('Hello world);
答案 1 :(得分:1)
我想你是说你希望变量$somehelper
从类的上下文之外调用helper::somehelper
。
$somehelper = function($somevar) {
return helper::somehelper($somevar);
});
这假设somehelper
是一个静态函数(即应该标记为public static function
。如果不是,你将不得不提供更多关于类的位置的信息实例来自。