4

我正在学习 OOP,我想我已经掌握了窍门。我的问题是为什么 wordpress 样板插件的作者写了这样的添加操作函数

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

根据我理解add_action钩子的codex,要传递的参数是$tag“$function_to_add 被钩住的操作的名称”,以及你想要钩住的函数$function_to_add

好吧,我理解 OOP 中的函数是方法,我可以理解为什么这可能会改变语法,但这只是一个模糊的表示,我想要一个明确的答案,为什么作者使用数组,然后使用&$this. 我理解为什么有人会使用$this->property但不太确定&$this.

只是您如何引用该方法吗?如果是这样,我仍然不理解数组,为什么它看起来不像$this->admin_init.

顺便说一下,结构看起来有点像这样

    class my_plugin_settings {

            public function __construct() {

                    // register actions
                    add_action('admin_init', array(&$this, 'admin_init'));

            } 

            public function admin_init() {

                    //Settings here
            }
    }
4

1 回答 1

1

&this 为 PHP 函数提供上下文,将其连接到您的 admin_init 函数。查看 add_action 的声明或查看http://www.php.net/manual/en/function.call-user-func-array.php

这就是 PHP 知道在该对象中使用函数的方式,而不是全局级函数

于 2013-09-14T21:43:58.407 回答