我只是在Wordpress中弄湿了,我正在尝试使用OOP技术编写一个非常简单的插件。我一直在关注本教程:http://www.yaconiello.com/blog/how-to-write-wordpress-plugin/。到目前为止,我觉得我理解了大部分正在发生的事情,但我对这样的陈述感到有些困惑:
add_action('init', array(&$this, 'init'));
阅读Wordpress's add_action()和PHP callables上的文档后,我认为第二个参数是类实例的方法。但我不明白为什么$this
必须通过引用传递。
在PHP文档中发现了关于callables的这个说明,我怀疑它可能与它有关,但是我仍然很难绕过不同的东西:
注意:在PHP 4中,必须使用引用来创建指向实际对象的回调,而不是它的副本。有关更多详细信息,请参阅参考资料说明。
如果我有PHP 5,我使用array($this,'init')
安全吗?
答案 0 :(得分:2)
是的 - 您可以安全地使用array($this, 'init');
。
这实际上是PHP中的“可调用”。它将使用call_user_func()
或call_user_func_array()
(add_action
方法内部)调用。
PHP对此类可调用的官方描述:
实例化对象的方法作为数组传递,该数组包含索引为0的对象和索引为1的方法名称。
您可以阅读有关callables here的更多信息。