2014-02-13 38 views
2

我只是让我的脚在Wordpress中,我试图写一个非常简单的插件使用面向对象技术。我一直在关注这个教程:http://www.yaconiello.com/blog/how-to-write-wordpress-plugin/。到目前为止,我觉得我了解大多数发生了什么事情,但我稍微语句像这样的疑惑:

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

已经阅读文档上Wordpress's add_action()PHP callables,我推测,第二个参数是一个类实例的方法。但我不明白为什么$this必须通过引用传递。

发现本说明中关于可调用的PHP文档,我怀疑可能有一些,用它做的,但我仍然有一个很难包装我的头周围有什么区别:

注意:在PHP 4中,有必要使用引用来创建指向实际对象的回调,而不是它的副本。有关更多详细信息,请参阅参考资料。

如果我有PHP 5,我是否安全使用array($this,'init')

可能相关的:add_action in wordpress using OOP?

回答

2

是 - 你是安全的只使用array($this, 'init');

这实际上是什么,是PHP中的“可调用”。它将使用call_user_func()call_user_func_array()(在add_action方法内部)进行调用。

PHP的这种类型的可调用的正式描述:

一个实例化的对象的方法,作为含有在索引0处的对象和方法的名称索引1

阵列被传递你可以阅读更多关于可驯化的here

+1

好的,谢谢! 我知道它是可调用的。其实我在我的问题中链接到那个页面;)虽然我把它称为回调...猜测我最好去编辑。在这种情况下,我对$ this和$ this之间的差异感到很好奇。哇,这是一个令人困惑的句子。 – Yumecosmos

相关问题