我可以将函数分配给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()
}
}
答案 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();
}
}