add_action в wordpress с помощью OOP?

Я узнаю о ООП, и я думаю, что я получаю это от этого. Мой вопрос в том, почему автор плагина wordpress plugplate написал функцию добавления действия, подобную этой

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

В соответствии с кодеком я понимаю крюк add_action , параметрами, которые нужно передать, является $tag «Имя действия, к которому привязан $ function_to_add», и функция, которую вы хотите подключить $function_to_add .

Ну, я понимаю, что функции в ООП – это методы, и я могу понять, почему это может изменить синтаксис, но это всего лишь неопределенное представление, я хочу получить ясный ответ, почему автор использует массив, а затем использует &$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 } } 

& this предоставляет контекст для функций PHP под капотом, которые подключают его к вашей функции admin_init. Ознакомьтесь с объявлением add_action или просмотрите http://www.php.net/manual/en/function.call-user-func-array.php .

Так PHP знает, что использовать функцию в этом объекте, а не функцию глобального уровня