Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP_Начало_Лабораторная работа4нов.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.16 Mб
Скачать

4.4.7.2. Возврат значения из функции

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

<?

$price=100;

$tax= .06;

function nalog($tax, $price) {

$sales_tax=$tax;

return $price+($price*$sales_tax); }

$total_cost=nalog($tax, $price);

$total_cost=round($total_cost,2); // округление до двух десятичных цифр

echo 'Total cost is $'.$total_cost;

?>

Рис. 19. Результат работы программы с вызовом функции

Существует и другой способ использования возвращаемых функций, при котором вызов функции включается прямо в условную/циклическую команду. В следующей программу сумма счета пользователя сравнивается с предельным размером кредита:

$cost=1456.22;

$limit=1000.00;

function check_limit($total_cost, $credit_limit) {

if ($total_cost>$credit_limit) { return 0 ;}

else { return 1; } }

if (check_limit($cost, $limit))

{ echo "Keep shopping!"; } else {

echo "Please lower total bill to less then \$$limit!" ;}

Функция также может возвращать сразу несколько значений при помощи списка. Ниже приведена функция, котороя возвращает три лучших года для указанного сорта вина:

$label="merlot"; //сорт вина function best_years($label) { $merlot=array('1987','1983','1977'); $zinfandel=array('1992','1990','1989'); return $label; } // функция list() используется для получения возвращаемых значений. list(yr1, yr2, yr3)=best_years($label); echo "$label hes three perticularly remarkable years: $yr1, $yr3, $yr2";

Программа выводит следующий результат: merlot has three particulary remarkable years: 1987, 1983, 1977

4.4.7.3. Рекурсивные функции

Ситуация, при которой функция многократно вызывает сама себя, пока не будет выполнено некоторое условие, открывает замечательные возможности. При правильном использовании рекурсивные функции уменишают объём программы и делают её более выразительной. Рекурсивные функции особенно часто используются при выполнении повторяющихся действий - например, при поиске в файлах/массивах и построении графических изображений. Класическим примером рекурсивных функций, встречающимся во многих курсах програмирования, является суммирование чисел от 1 до N. Программа приведённая ниже, суммирует все числа от 1 до 10:

function summation($count) {

if ($count!=0) {

return $count+summation($count-1); } }

$sum=summation(10);

echo "Summation=$sum";

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