Правила вызова функции

Функцию можно вызвать после ее определения, т.е. в любой строке программы ниже блока function f_name(){...}.

В PHP3 это было действительно так. Но уже в PHP4 такого требования нет. Все дело в том, как интерпретатор обрабатывает получаемый код. Единственное исключение составляют функции,определяемые условно (внутри условных операторов или других функций). Когда функция определяется таким образом, ее определение должно предшествовать ее вызову.

Пример 1. Определение функции внутри условного оператора (html, txt)

$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 можно вызывать и здесь
?>

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

Пример 2. Определение функции внутри функции (html, txt)

/* нельзя сохранить данные, т.е. вызвать
функцию DataSave() до того, как выполнена
проверка их правильности, т.е. вызвана
функция DataCheck() */

DataCheck();
DataSave();

function DataCheck(){
// проверка правильности данных
function DataSave(){
// сохраняем данные
}
}
?>