Функция — это кусочек кода, которому дали имя.
В обычную переменную можно записать число, строку или массив, а затем получить его обратно, обратившись к значению по имени переменной. Функции устроены похожим образом, только вместо строки или числа в ней хранится блок кода, который вызывается при использовании этой «переменной».
Функции помогают повторно использовать код, который нужен во многих местах программы. Если бы функций не существовало, пришлось бы копировать и вставлять фрагмент кода каждый раз, когда он понадобится. А так достаточно написать функцию один раз и вызывать её каждый раз, когда она нужна.
Функции нужны, чтобы не переписывать один и тот же код много раз.
Какие бывают функции
Функции бывают встроенные и пользовательские.
Встроенные функции за вас уже написали создатели языка, и вы можете просто брать их и использовать. В PHP существуют тысячи готовых функций на все случаи жизни — например, sort()
для сортировки массивов, print()
для вывода строк на экран или функции для работы с базами данных.
Полный список встроенных функций в PHP
С ними программировать будет проще
Пользовательские функции программисты пишут сами — например, чтобы проверить данные пассажира по номеру авиабилета или определить, високосный ли сейчас год. Эти функции, как правило, используются только внутри одного проекта, но бывают исключения — и такие функции выносят в библиотеки.
Аргументы функции и область видимости
Функция — это как бы программа в программе. Это значит, что внутри неё не будут доступны переменные, которые определялись за её пределами. Чтобы передать внутрь функции информацию извне, нужно использовать аргументы функции.
Аргументы функции — это переменные, которые мы передаём в функцию для обработки. Аргументов может быть несколько.
Пример. Мы хотим показывать на сайте, является ли выбранный пользователем год високосным. Напишем функцию, в которую будем передавать год. В результате работы функции мы должны получить true
, если год високосный, и false
— если нет.
В такой функции нам нужен только один аргумент — номер выбранного года $year
.
<?php
function is_leap_year($year) {
Функция «не видит» переменные, которые мы создали за её границами. Поэтому переменные в функцию нужно передавать явно — то есть, через аргументы.
Верно и обратное — переменные, определённые внутри функции, не будут доступны извне. Такие переменные называются локальными, потому что они локальны по отношению к функции.
В отличие от аргументов, которых может быть несколько, вернуть во внешний код функция может только одно значение — с помощью инструкции «return» (возврат). Возвращаемое значение называют результатом работы функции.
Как использовать функции
Функция состоит из нескольких частей:
- имени функции,
- аргументов, которые передаются в функцию,
- тела функции,
- оператора return, который отвечает за возврат результата в сценарий.
Аргументов в функции может и не быть — тогда она называется подпрограммой.
То есть объявление функции выглядит примерно так:
<?php
function <имя функции>(<аргумент функции>) {
<тело функции>
return <результат выполнения функции>;
}
Давайте напишем настоящую функцию, которая по номеру года вычисляет, високосный ли он. Так будет проще понять, как устроены функции.
Что нужно запомнить:
- Функция — это кусочек кода, которому дали имя.
- Функции нужны, чтобы не переписывать один и тот же код много раз.
- В функцию можно передать много переменных, но вернуть только что-то одно.
- Переменные внутри функции недоступны снаружи, внешние переменные нужно передавать через аргументы.