这是一个示例类:
public class example
{
private $foof;
public function __construct()
{
$this->foof = $this->foo;
}
public function foo($val=0)
{
// do something...
}
}
所以基本上,在示例代码的构造中,是否可以将一个类方法赋给变量?
最终我想要的是拥有一个关联数组,其中包含所有类别方法...这可能在PHP中?
答案 0 :(得分:5)
在PHP5.3 +中(无论如何你应该使用它!)你可以简单地创建一个调用你的方法的匿名函数:
$this->foof = function() {
$this->foo(1);
};
但是,您无法使用$this->foof()
调用它 - 您必须先将其分配给变量:$foof = $this->foof; $foof();
在较旧的PHP版本中,您无法轻松执行此操作 - create_function()
不会创建闭包,因此$this
不可用。
答案 1 :(得分:0)
您不需要使用匿名函数。只需使用Callable pseudo type。
$this->foof = array($this, 'foo');
...
call_user_func($this->foof);