Имеет ли смысл определение функции?

В приведенном ниже сценарии задается порядок, в котором объявляются предметы?

Например, если add_action указывает на функцию, которая еще не определена? Это имеет значение или должно ли объявление функции всегда предшествовать любому коду, в котором его вызывали?

add_action('load-categories.php', 'my_admin_init'); function my_admin_init(){ //do something } 

Solutions Collecting From Web of "Имеет ли смысл определение функции?"

Это не имеет значения, объявлена ​​ли функция до или после вызова, но функция должна присутствовать в скрипте и должна быть загружена.

Это первый метод, и он будет работать:

 some_func($a,$b); function some_func($a,$b) { echo 'Called'; } 

Это второй метод, который также будет работать:

 function some_func($a,$b) { echo 'Called'; } some_func($a,$b); 

Из руководства по PHP :

Функции не обязательно должны быть определены до их ссылки, кроме случаев, когда функция условно определена, как показано в двух примерах ниже.

Однако, хотя это более личное предпочтение, я бы настоятельно рекомендовал включать все функции, которые вы фактически используете во внешний файл functions.php затем используя require_once() или include_once() (в зависимости от вкусов) на самой вершине вашего основной файл PHP. Это имеет более логичный смысл – если кто-то еще читает ваш код, ослепляюще очевидно, что вы используете пользовательские функции, и они находятся в functions.php . Сохраняет много догадок ИМО.

вы можете вызвать функцию до ее определения, сначала файл разбирается и затем выполняется.

Нет.
Это не C: P …
Как вы можете видеть здесь , весь файл сначала разбирается, а затем выполняется.
Если функция, которая не существует, вызывается, php выдает ошибку.

Неустранимая ошибка: вызов неопределенной функции

Это не имеет значения, если оно объявлено где-то на странице.

как показано здесь:

http://codepad.org/aYbO7TYh

Цитирование раздела « Пользовательские функции » руководства:

Функции не обязательно должны быть определены до их ссылки, кроме случаев, когда функция условно определена

Итак, в основном: вы можете вызвать функцию до того, как ее определение будет записано, но, конечно, PHP должен уметь видеть это определение, когда пытаетесь его вызвать.

В соответствии с моим личным опытом, в некоторых особых случаях (например, передача массива в функции или функции внутри функции и т. Д.). Лучше всего определить функцию над вызовом. Из-за этого иногда ни одна из функций не работает, а PHP генерирует ошибку.

В обычных функциях php это не имеет значения. Вы можете использовать оба типа.