好的,我有下面的代码
<?php
class foo{
public $bar = NULL;
public function boo(){
$this->bar();
}
}
$mee = new foo();
//save a closure function on the property
$mee->bar = function(){
echo 'hahaha';
};
//invoke the closure function by using a class method
$mee->boo();
?>
你可以看到它在这里运行http://codepad.org/s1jhi7cv
现在我想要的是将闭包函数存储在类方法上。
当我在这里阅读有关它的文档时,井关闭是可能的http://php.net/manual/en/functions.anonymous.php
这可能吗?我是不是做错了什么?请纠正我
您在 codepad.org 上的示例代码不起作用,因为 codepad.org 使用 PHP 5.2.5,并且仅在 5.3 中添加了闭包支持。
但是,您的代码也无法在支持闭包的 PHP 版本中运行,尽管您会收到不同的错误:http://codepad.viper-7.com/Ob0bH5
这是目前 PHP 的一个限制。$obj->member()
寻找名为的方法member
并且不会查看属性来查看它们是否可调用。坦率地说,这很烦人。
我所知道的唯一方法是让这项工作无需call_user_func()
/call_user_func_array()
is:
public function boo() {
$func = $this->bar;
$func();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)