Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vtoraya_chast_uchebnika_po_WWW_Okonchat_variant...doc
Скачиваний:
33
Добавлен:
27.09.2019
Размер:
6.06 Mб
Скачать

Пример 4‑12

<?php

/* Определение двух вариантов функции возведения в квадрат.

function kvadrat1($chislo) */

{

return $chislo * $chislo;

}

function kvadrat2($chislo)

{

$a=$chislo;

return ($a * $chislo);

}

?>

/* Основная вызывающая функция с определением функции возведения числа в куб */

<?php

$vxodn1 = 5;

$vxodn2 = 6;

echo "5 x 5 = ", kvadrat1($vxodn1), "</br>";

echo "6 x 6 = ", kvadrat2($vxodn2), "</br>";

echo "7 x 7 x 7 = ", kub(7), "</br>";

function kub($chislo)

{

$a=$chislo;

return (kvadrat2($a) * $chislo);

}

?>

Результат работы примера Пример 4-12:

Отметим ещё две особенности использования функций в PHP:

  1. Функция может возвращать значения любого типа, в том числе и логического.

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

В качества иллюстрации отмеченных свойств, продемонстрируем пример использования функции, определяющей комфортность погоды (Пример 4-13).

Пример 4‑13

<?php

function kakaya_pogoda($temperatura,$osadki)

{

echo "Температура = ", "$temperatura </br>";

echo "Осадки - ", "$osadki </br>";

if(($temperatura > 10 && $temperatura < 25) && (($osadki <> "снег")

and ($osadki <> "дождь")))

{

return TRUE;

}

return FALSE;

}

//Три варианта определения погоды

// 1- ый вариант

$gradus = 20;

if (kakaya_pogoda($gradus, "Нет"))

{echo "Поэтому: Хорошая погода </br>";}

else

{echo "Поэтому: Плохая погода </br>";}

//2- ой вариант

$gradus = - 10;

if (kakaya_pogoda($gradus,"снег"))

{echo "Поэтому: Хорошая погода </br>";}

else

{echo "Поэтому: Плохая погода </br>";}

//3-ий вариант

$gradus = 22;

if (kakaya_pogoda($gradus,"дождь"))

{echo "Поэтому: Хорошая погода </br>";}

else

{echo "Поэтому: Плохая погода </br>";}

?>

Примечание: Пример имеет изъян и может привести к смешному результату. Определите, в чём он заключается, и как его можно исправить.

4.4.2. Функция, возвращающая массив. Использование списков

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

Для этого в php разработано и применяется два способа:

  1. используется тот же самый оператор return, рассмотренный в предыдущем разделе;

  2. применяется системная функция list, осуществляющая присвоение, перечисленным при её вызове, переменным значений элементов массива. Её синтаксис: void list(список имён переменных).

Наподобие array(), функция list() не совсем функция, а языковая конструкция. Она используется для формирования списка переменных.

Первый и второй способы приведены в примере Пример 4-14