Функцию можно вызвать после ее определения, т.е. в любой строке программы ниже блока function f_name(){...}.
В PHP3 это было действительно так. Но уже в PHP4 такого требования нет.
Все дело в том, как интерпретатор обрабатывает получаемый код. Единственное исключение составляют функции,
определяемые условно (внутри условных операторов или других функций).
Когда функция определяется таким образом, ее определение должно предшествовать ее вызову.
$make = true;
/* здесь нельзя вызвать Make_event();
потому что она еще не существует, но можно
вызвать Save_info() */
Save_info("Вася","Иванов",
"Я выбрал курс по PHP");
if ($make){
// определение функции Make_event()
function Make_event(){
echo "Хочу изучать Python";
}
}
// теперь можно вызывать Make_event()
Make_event();
// определение функции Save_info
function Save_info($first, $last, $message){
echo "$message";
echo "Имя: ". $first . " ". $last . "";
}
Save_info("Федя","Федоров",
"А я выбрал Lisp");
// Save_info можно вызывать и здесь
?>
Пример 1. Определение функции внутри условного оператора (html, txt)
Если функция однажды определена в программе, то переопределить или удалить ее позже нельзя.
Несмотря на то, что имена функций нечувствительны к регистру, лучше вызывать функцию по тому же имени,
каким она была задана в определении.
/* нельзя сохранить данные, т.е. вызвать
функцию DataSave() до того, как выполнена
проверка их правильности, т.е. вызвана
функция DataCheck() */
DataCheck();
DataSave();
function DataCheck(){
// проверка правильности данных
function DataSave(){
// сохраняем данные
}
}
?>
Пример 2. Определение функции внутри функции (html, txt)