为什么要使用数组($ this,' function')而不是$ this-> function()

时间:2016-01-01 14:25:33

标签: php arrays wordpress class

我正在查看一个WordPress插件,我在一个类的构造函数中看到了这个函数:

add_action('init', array($this, 'function_name'));

我搜索并发现array($this, 'function_name')是有效的回调。我不明白的是:为什么要使用这种方法,而不是使用$this->function_name();

以下是示例代码:

class Hello{
  function __construct(){
    add_action('init', array($this, 'printHello'));
  }
  function printHello(){
    echo 'Hello';
  }
}
$t = new Hello;

1 个答案:

答案 0 :(得分:1)

从您的示例代码中,$this->printHello()将无法在您的class Hello之外使用。传递对当前对象的引用($ this)和方法的名称将允许外部代码调用对象的给定方法。