Функции используются для выделения блоков кода, выполняющих конкретную задачу. Например, если вам часто приходится искать какие-то данные и выводить их в определенном формате, то вполне разумно будет обратиться к функции. Код, выполняющий эту задачу, может занимать всего три строки, но, пока вы не воспользуетесь функцией, необходимость вставлять этот код в программу десятки раз делает ее неоправданно большой и сложной. А если вы чуть позже задумаете изменить формат вывода данных, помещение кода в функцию будет означать, что вам придется внести изменения только в одном месте программы.
Помещение кода в функцию не только сокращает размер исходного кода и делает его более удобным для чтения, но и дает дополнительные функциональные возможности (эта игра слов носит преднамеренный характер), поскольку функциям могут передаваться параметры, которые вносят изменения в характер их работы. Функции также могут возвращать значения вызывающему их коду. Для того чтобы создать функцию, нужно ее объявить, как показано в примере.
Пример. Простое объявление функции
<?php
function longdate($timestamp)
{
return date("l F jS Y". $timestamp);
}
?>
Эта функция использует в качестве входных данных отметку времени системы Unix (целое число, отображающее дату и время на основе количества секунд, прошедших с нуля часов 1 января 1970 года), а затем вызывает PHP-функцию date
с нужным форматом строки, чтобы вернуть дату в формате «Среда август 1 2013». Между стоящими после имени функции круглыми скобками может размещаться любое количество параметров, но для этой функции мы выбрали прием только одного параметра. Весь код, который выполняется при последующем вызове функции, заключается в фигурные скобки.
Для того чтобы с помощью этой функции вывести сегодняшнюю дату, нужно в свой код поместить следующий вызов:
echo longdate(time());
В этом вызове для извлечения текущей отметки времени Unix и передачи ее только что созданной функции longdate
, которая затем возвращает для отображения соответствующую строку команде echo
, используется встроенная РНР-функция time
. Если требуется вывести дату семнадцатидневной давности, нужно сделать следующий вызов:
echo longdate(time() - 17 * 24 * 60 * 60);
,
в котором функции longdate
передается текущая отметка времени Unix, уменьшенная на количество секунд, прошедшее за 17 дней (17 дней · 24 ч · 60 мин · 60 с).
Функции могут также воспринимать несколько параметров и возвращать несколько результатов, используя технологию, которая будет показана в развитии в следующих разделaх.
Различие между командами echo и print | Область видимости переменной |