Функция — это кусочек кода, которому дали имя.

В обычную переменную можно записать число, строку или массив, а затем получить его обратно, обратившись к значению по имени переменной. Функции устроены похожим образом, только вместо строки или числа в ней хранится блок кода, который вызывается при использовании этой «переменной».

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

Функции нужны, чтобы не переписывать один и тот же код много раз.

Какие бывают функции

Функции бывают встроенные и пользовательские.

Встроенные функции за вас уже написали создатели языка, и вы можете просто брать их и использовать. В PHP существуют тысячи готовых функций на все случаи жизни — например, sort() для сортировки массивов, print() для вывода строк на экран или функции для работы с базами данных.

Полный список встроенных функций в PHP

С ними программировать будет проще

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

Аргументы функции и область видимости

Функция — это как бы программа в программе. Это значит, что внутри неё не будут доступны переменные, которые определялись за её пределами. Чтобы передать внутрь функции информацию извне, нужно использовать аргументы функции.

Аргументы функции — это переменные, которые мы передаём в функцию для обработки. Аргументов может быть несколько.

Пример. Мы хотим показывать на сайте, является ли выбранный пользователем год високосным. Напишем функцию, в которую будем передавать год. В результате работы функции мы должны получить true, если год високосный, и false — если нет.

В такой функции нам нужен только один аргумент — номер выбранного года $year.

<?php
function is_leap_year($year) {

Функция «не видит» переменные, которые мы создали за её границами. Поэтому переменные в функцию нужно передавать явно — то есть, через аргументы.

Верно и обратное — переменные, определённые внутри функции, не будут доступны извне. Такие переменные называются локальными, потому что они локальны по отношению к функции.

В отличие от аргументов, которых может быть несколько, вернуть во внешний код функция может только одно значение — с помощью инструкции «return» (возврат). Возвращаемое значение называют результатом работы функции.

Как использовать функции

Функция состоит из нескольких частей:

  • имени функции,
  • аргументов, которые передаются в функцию,
  • тела функции,
  • оператора return, который отвечает за возврат результата в сценарий.

Аргументов в функции может и не быть — тогда она называется подпрограммой.

То есть объявление функции выглядит примерно так:

<?php
function <имя функции>(<аргумент функции>) {
    <тело функции>
    return <результат выполнения функции>;
}

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

Что нужно запомнить:

  • Функция — это кусочек кода, которому дали имя.
  • Функции нужны, чтобы не переписывать один и тот же код много раз.
  • В функцию можно передать много переменных, но вернуть только что-то одно.
  • Переменные внутри функции недоступны снаружи, внешние переменные нужно передавать через аргументы.