在PHP的类属性中存储闭包函数

好的,我有下面的代码

<?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

现在我想要在这里将闭包函数存储在class方法上.

在这里阅读有关文档的信息时,可能会关闭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()的唯一方法是:

public function boo() {
   $func = $this->bar;
   $func();
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...