Я узнаю о ООП, и я думаю, что я получаю это от этого. Мой вопрос в том, почему автор плагина 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 знает, что использовать функцию в этом объекте, а не функцию глобального уровня