Просматривая фрагменты / учебники / плагины WordPress, которые я часто вижу add_action()
и add_filter()
помещаю перед объявлением функции:
add_action( 'publish_post', 'email_friends' );
function email_friends( $post_ID ) {
$friends = 'bob@example.org, susie@example.org';
mail( $friends, "sally's blog updated" , 'I just put something on my blog: http://blog.example.com' );
return $post_ID;
}
С логической точки зрения это просто не имеет смысла для меня. Зачем вам помещать функцию после ее вызова в вашем коде? Это обычно, как я бы справился с той же ситуацией:
function email_friends( $post_ID ) {
$friends = 'bob@example.org, susie@example.org';
mail( $friends, "sally's blog updated" , 'I just put something on my blog: http://blog.example.com' );
return $post_ID;
}
add_action( 'publish_post', 'email_friends' );
Я знаю, что оба сценария работают, но есть ли конкретное преимущество для одного или другого? Примерно в 90% случаев я вижу, как используется первый сценарий, и это наводит меня на мысль, что в этом есть какая-то польза.
источник
На самом деле нет никакой разницы, я, например, предпочитаю следовать первому сценарию, потому что удобнее размещать вызовы в одном месте и определять функции ниже этого. PHP анализирует весь документ перед выполнением чего-либо, и если функции определены должным образом, все будет работать нормально, в любом случае это не дает никаких преимуществ.
Я считаю, что правильное высказывание здесь: все, что плавает на вашей лодке :)
источник
call_user_func_array()
(скорее всего) вызывается после определения вашей функции при запускеdo_action
. Таким образом, вы можете определить подключенную функцию в любом месте до этой точки.4 года спустя, но я уверен, что это поможет людям попасть сюда из поиска.
Как уже говорили другие, нет никакой разницы, так как php анализирует весь документ и выполняет в правильном порядке. Так что как хочешь.
Мне лично нравится первый стиль:
Я склонен думать задом наперед. Ориентирован на цель, если хотите. Так что мне нравится читать: «Мы делаем функциональную панель, в ловушке. Хорошо, круто, теперь, что делает функция?»
Это устанавливает контекст для функции лучше. Конечно, это всего лишь мое личное предпочтение. Так что делай что хочешь.
источник