Page 51 - 4636
P. 51
Ключове слово return зупиняє виконання функції. Коли виконання функції завершується або
через те, що всі оператори виконані, або через зустрічі ключового слова return, керування
повертається оператору, наступному за викликом функції.
При виклику представленої нижче функції виконується тільки перший оператор echo:
function test_return() {
echo "Цей оператор буде виконаний"; return;
echo "Цей оператор не буде виконаний";
}
Очевидно, це не самий корисний спосіб використання оператора return. Зазвичай повернення з
функції вимагається тільки в разі виконання деякої умови.
Умова виникнення помилки - це найбільш поширена причина застосування оператора return з
метою передчасного припинення виконання функції. Якщо, наприклад, ви написали функцію для
визначення більшого з двох чисел, можливо, ви захочете вийти з неї в разі відсутності одного з чисел.
function larger($х, $y) {
if (!isset($x) || !isset ($y) {
echo "Ця функція вимагає вказівки двох чисел";
return;
}
if ($х>=$y) {
echo $x."<br />";
} else {
echo $y."<br />";
}
}
Вбудована функціяisset()повідомляє, була створена змінна, і було їй присвоєно значення. Даний
код генерує повідомлення про помилку і виконує повернення, якщо значення будь-якого з параметрів
не встановлено. Ця перевірка виконується за допомогою виразу !isset(), що означає “НЕ
isset() ”, і отже, умовний оператор if можна прочитати як “якщо значення х не встановлено або
якщо значення не встановлено”. Функція буде виконувати повернення, якщо будь-яка з цих умов
істинна.
Якщо оператор return виконується, то наступні за ним рядка коду функції ігноруються. Виконання
програми повернеться до точки, в якій функція була викликана. Якщо обидва параметра встановлено,
функція виведе на екран більший з них. Результат роботи наступного коду:
$а = 1;
$b = 2.5;
$с = 1.9; '
larger ($а, $b);
larger ($b, $а);
larger($d, $а);
матиме такий вигляд:
2.5
1.9
Ця функція вимагає вказання двох чисел
Повернення значень функції
Вихід з функції - не єдина причина застосування оператора return. У багатьох функціях
оператори return використовуються для обміну даними з викликаючим їх кодом. Функція
larger()була б більш корисною, якщо б замість виведення на екран результату порівняння вона
повертала саме число. У цьому випадку викликаючий функцію код міг би приймати рішення, чи
потрібно і коли саме потрібно відображати або це більше число. Еквівалентна вбудована функція
max() саме так і працює.
48