Урок 9: Функции
В предыдущих уроках вы узнали, как использовать функции вроде date() и array(). В этом уроке мы научимся создавать собственные функции с помощью function.
Что такое функция?
Функция обрабатывает ввод и возвращает вывод. Это необходимо, например, если у вас большой объём данных, или если необходимо многократно выполнять вычисления.
Функция имеет следующий синтаксис:
Имя Функции(список параметров) { Оператор }
Таким образом, можно создать простейшую функцию, которая прибавляет значение 1 к числу. Выглядит это так:
function AddOne($x) { $x = $x + 1; echo $x; }
Наша функция называется AddOne и должна вызваться с числом - например, 34 ...
echo AddOne(34);
... которое (вот сюрприз!) возвращает 35.
Этот пример работает с числом, но функции могут работать с текстом, датами и др. Можно создавать функции с множеством разных параметров. В этом уроке вы увидите примеры разнообразных функций.
Пример 1: Функция с несколькими параметрами
Как сказано выше, вы можете легко создавать функции, вызываемые с несколькими параметрами. В следующем примере мы создадим функцию, вызываемую с тремя числами, возвращающую значение суммы этих числе:
<html> <head> <title>Функции</title> </head> <body> <?php function AddAll($number1,$number2,$number3) { $plus = $number1 + $number2 + $number3; return $plus; } echo "123 + 654 + 9 equals " . AddAll(123,654,9); ?> </body> </html>
Ok. Это тоже почти так же просто! Но важно было показать, что функция может вызываться с несколькими параметрами.
Пример 2: Английские дата и время
Попробуем создать более сложную функцию. Функция, вызываемая с датой и временем, возвращает это в формате: Wednesday, 15 February, 2012, 10:00:00 AM
<html> <head> <title>Функции</title> </head> <body> <?php function EnglishDateTime($date) { // Массив с английскими названиями дней недели $arrDay = array("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"); // Массив с английскими названиями месяцев $arrMonth = array("","January","February","March","April","May","June","July","August","September","October","November","December"); // Конструируется дата $EnglishDateTime = $arrDay[(date("w",$date))] . ", " . date("d",$date); $EnglishDateTime = $EnglishDateTime . " " . $arrMonth[date("n",$date)] . " " . date("Y",$date); $EnglishDateTime = $EnglishDateTime . ", " . date("H",$date) . ":" . date("i",$date); return $EnglishDateTime; } // Проверка работы функции echo EnglishDateTime(time()); ?> </body> </html>
Обратите внимание, как '$arrMonth' и '$EnglishDateTime' конструируются в нескольких строках. Это сделано, чтобы пользователи с низким разрешением экрана могли лучше разглядеть пример. Это не влияет на сам код.
Эта функция работает на всех вэб-серверах, независимо от языка. То есть вы можете видеть работу этой функции, если ваш сайт, например, размещён на французском сервере, но вам нужны английские даты.
Пока мы не углубляемся в работу функций, но уже знаем немного о них.