Подтвердить что ты не робот

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

В script ниже указан ли порядок, в котором объявлены элементы?

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

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

Ответ 1

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

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

some_func($a,$b);

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

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

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

some_func($a,$b);

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

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

http://codepad.org/aYbO7TYh

Ответ 6

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

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

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

Ответ 7

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

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