将函数分配给PHP中的类变量

时间:2019-02-27 11:21:29

标签: php php-7 anonymous-function php-5.6 php-5.4

我可以将函数分配给PHP中的类变量,即$this->variable

但是,当我尝试执行该函数时,它失败并显示:

FATAL ERROR Call to undefined method a::f()

以下是说明问题的摘要:

<?php

new a();

class a
{
    private $f;
    function __construct()
    {
        $g = function() { echo "hello g"; };
        $g(); //works

        $this->f = function() { echo "hello f"; };
        $this->f();  //FATAL ERROR Call to undefined method a::f()
    }
}

1 个答案:

答案 0 :(得分:0)

看起来语法令人困惑。

将函数分配回局部变量,一切正常!

<?php

new a();

class a
{
    private $f;
    function __construct()
    {
        $g = function() { echo "hello g"; };
        $g();

        $this->f = function() { echo "hello f"; };
        $f = $this->f;   //ASSIGN TO LOCAL VARIABLE!!!
        $f();
    }
}