Я узнаю о ООП, и я думаю, что получаю от этого зависание. Мой вопрос, почему автор WordPress шаблонного плагина написал функцию добавления действия, как этотadd_action в wordpress с помощью OOP?
add_action('admin_init', array(&$this, 'admin_init'));
Согласно Codex Я понимаю add_action
крючка, то PARAMATERS, передаваемое в $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
}
}
Ok спасибо за пояснения и ссылку .. Я гугл это и не получили какие-либо хорошие результаты из-за амперсанд. Хорошо, так (вопрос noob), который делает '& $ this' ключом и функцией' admin_init' значение? Я не уверен, почему массив, а не просто сказать '$ this-> funcName'. Идущий читать, надеюсь, поймет, почему, но если вы знаете, что было бы здорово, если бы вы могли кратко объяснить :) –
Вы передаете массив, но он соответствует типу 'callable'. Именно так структурируются вызываемые символы. Если массив передан, он предполагает, что ключ является объектом для вызова, а значение является функцией. Если передается только строка, PHP предполагает, что это функция глобального уровня и вызывает это. http://www.php.net/manual/en/language.types.callable.php –
Ах, хорошо, что имеет смысл этого лучше. Нет другого способа написать тот же синтаксис? Похоже, что это 'Foo :: test' - способ ссылки на объект/метод? Этот синтаксис является новым, поскольку я предполагаю, что он используется только в ООП, но я вижу его много, теперь, когда я работаю с ООП. –