Функція - це блок коду, який може бути іменований і викликаний повторно. Іноді функцію ще називають підпрограмою.
Звичайній змінній присвоюють число, рядок або масив, а потім отримують його назад, звернувшись до значення за ім'ям змінної. Функції влаштовані схожим чином. Це теж змінна, тільки замість рядка або числа у функції зберігається блок коду, який викликається під час використання цієї "змінної".
Функція - дуже потужний інструмент повторного використання коду. Створивши свою функцію і записавши туди необхідний код, ви зможете викликати і використовувати його стільки разів, скільки необхідно. В іншому разі довелося б копіювати і вставляти фрагмент коду щоразу, коли він знадобиться.
Щоб спростити собі роботу, оформіть у вигляді функції частину коду, яка використовується в сценарії кілька разів. Потім, замість копіювання і вставки цієї частини, потрібно буде тільки викликати функцію, як якщо б ми зверталися до змінної.
Розділяють два типи функцій - вбудовані та користувацькі.
Вбудовані функції - функції, які за нас уже написали творці мови програмування, можемо просто брати їх і використовувати. У PHP існують тисячі готових функцій на всі випадки життя!
Одна з добре знайомих функцій - функція, яка виводить переданий їй текст на екран - print().
Користувацькі функції програміст створює самостійно. Ці функції використовуються тільки всередині одного проєкту або сценарію.
Робота з функціями складається з оголошення та використання.
Перед тим як використовувати нову функцію, слід її оголосити:
<?php
function <ім'я функції>(<аргумент функції>) {
<тіло функції>
return <результат виконання функції>;
}
Пояснити всі складові частини функції найпростіше на прикладі.
Припустимо, на своєму сайті ми хочемо показувати, чи є обраний користувачем рік високосним. Для цього напишемо функцію, в яку передається рік. У результаті роботи функції ми хочемо отримати значення "істина", якщо рік високосний, і "брехня" - якщо ні.
Визначення такої функції:
<?php
function is_leap_year($year) {
if ($year % 4 != 0) {
return false;
}
elseif ($year % 100 == 0) {
if ($year % 400 == 0) {
return true;
}
else {
return false;
}
}
else {
return true;
}
}
Приклад використання функції:
<?php
$year = 2034;
if (!is_leap_year($year)) {
print("2034 год - простий");
}
else {
print ("2034 год - високосний");
}
Наша функція вміє обчислювати, чи є переданий рік високосним.
Оскільки функція - це програма в програмі, то всередині неї не будуть доступні змінні, які визначалися за її межами. Щоб передати всередину функції інформацію ззовні, потрібно використовувати аргументи функції.
Аргументи функції - це змінні, які функція може отримати із зовнішнього коду. У прикладі з is_leap_year така змінна була тільки одна - $year.
Вірно і зворотне - змінні, визначені всередині функції, не будуть доступні ззовні. Такі змінні називаються локальними, тому що вони локальні щодо функції.
На відміну від аргументів, яких може бути кілька, повернути у зовнішній код функція може тільки одне значення - за допомогою інструкції return (повернення). Значення, що повертається, називають результатом роботи функції.