我们可以在php中别名(保存到变量)一个类方法

时间:2012-05-31 21:41:10

标签: php class function methods alias

这是一个示例类:

public class example
 {
     private $foof;         

     public function __construct()
     {
          $this->foof = $this->foo;
     }

     public function foo($val=0)
     {
             // do something...
     }
 }

所以基本上,在示例代码的构造中,是否可以将一个类方法赋给变量?

最终我想要的是拥有一个关联数组,其中包含所有类别方法...这可能在PHP中?

2 个答案:

答案 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);