在PHP类中调用匿名函数

时间:2014-06-03 16:01:21

标签: php

class Foo
{
    public $abc;

    function __construct() {
        $this->abc = function(){
            echo "new function";
        };
    }

    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$foo->Bar();  // echo "This is Bar"

如何从外部调用$abc变量函数?

2 个答案:

答案 0 :(得分:6)

abc不是Foo的方法,因此不能只做$foo->abc();abc是一个属性。您首先需要获取该属性,然后调用它。

$abc = $foo->abc;
$abc();

DEMO:https://eval.in/158342

答案 1 :(得分:4)

或者,您可以使用call_user_func

call_user_func($foo->abc);

PHP 7开始,您可以执行以下操作:

($foo->abc)();