Функция объявляется при помощи ключевого слова function,после которого следует имя функции,в круглых скобках параметры функции и в фигурных скобках записываются различные операторы,составляющие тело функции:
function MyFunction()
{
// операторы
}
Если функция возвращает какое-либо значение,в теле функции обязательно должен присутствовать оператор return:
function MyFunction()
{
// Вычисления
return $mow; // возвращается значение переменной $mow
}
Рассмотрим достаточно простой пример:
1 2 3 4 5 6 7 8 |
<?php function get_sum() { $sum = 25 + 10; return $sum; } echo get_sum(25, 10); // выводит 35 ?> |
Выше было продемонстрирована функция,вычисляющая сумму двух чисел.Эта функция не принимает ни одного аргумента,а просто вычисляет сумму и возвращает полученный результат.После этого она вызывается в теле конструкции echo для вывода результата в браузере.
Модифицируем эту функцию так,чтобы она не возвращала полученный результат,а выводила его в браузер.Для этого достаточно внести конструкцию echo в тело функции.
Рассмотрим пример фукции get_sum когда сама выводит результат в браузер:
1 2 3 4 5 6 7 |
<?php function get_sum() { $sum = 25+10; echo $sum; } get_sum(); ?> |
Во многих языках программирования функция не может вызываться до ее объявления.В PHP отсутствую подобные ограничения.
Вызов может осуществляться до объявления функции
1 2 3 4 5 6 7 8 |
<?php get_sum(); function get_sum() { $sum = 25 + 10; echo $sum; } ?> |
Это правило изменяется,если объявление функции осуществляется внутри фигурных скобок.Функции могут быть объявлены в блоке,обрамленном фигурными скобками.Такой способ объявления функций часто используются,если объявления должно быть условным.
Условное объявление функции
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php // Объявляем логическую переменную $mow = TRUE; // Вызываем функцию,если переменная $mow равна TRUE if($mow) get_sum(); //Ошибка // Если переменная $mow равна TRUE объявляем функцию if($mow) { function get_sum() { $sum = 25 + 10; echo $sum; } } ?> |
Попытка вызова функции,обьявленной условно раньше обьявления,приводит к генерации ошибки:
Fatal error : Call to undenfined function get_sum() in D:\my\index.php on line 7