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

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

Перед написанием кода функции следует ответить на следующие вопросы:
- каким будет имя функции?
- какие входные данные будет принимать функция?
- какие выходные данные будет возвращать функция?

Выражение «функция возвращает данные» означает, что функция в результате своей работы создает некоторое значение (информацию) и это значение может быть, например, присвоено какой-нибудь переменной.

Значение, которое функция принимает, называется аргументом (параметром) функции.

Пример:

$x= -17;
$y=kv($x);
echo "Квадрат $x равен $y
";
echo "Квадрат 45 равен ".kv(45);

function kv($a) {
$b=$a*$a;
return $b;
}
?>

Запись function kv($a) означает, что мы создаем функцию под названием kv. Для работы этой функции необходимо ей передавать число, и это число будет храниться в переменной $a. Как результат своей работы наша функция возвратит квадрат этого числа. Отметим, что тело функции заключено в фигурные скобки { и }. Оператор $y=kv($x); передает значение переменной $x, которая относится к главной части программы, переменной $a, которая относится к функции kv. То есть теперь значение $a равно -17. После присвоения значения $a, подсчитывается её квадрат и присваивается переменной $b. Оператором return $b; функция kv возвращает значение $b в основную часть программы и там это значение присваивается переменной $y. В итоге, в переменной $y квадрат $x. Аналогичным образом подсчитывается квадрат числа 45, но результат не присваивается никакой переменной, а выводится непосредственно на экран.

Сохраните следующий пример в файле function1.php и протестируйте его:

 

Длина гипотенузы




Катет 1:


Катет 2:




if(!isset($_GET['katet1']) || !isset($_GET['katet2'])) {
echo "Введите длины катетов!
";
exit;
}
$k1 = $_GET['katet1'];
$k2 = $_GET['katet2'];
if($k1 == '')
echo "Введите длину катета 1!
";
if($k2 == '')
echo "Введите длину катета 2!
";
echo "Гипотенуза: ", hypotenuse($k1,$k2);

function hypotenuse($k1,$k2) {
$y=sqrt($k1*$k1+$k2*$k2);
return $y;
}
?>

Контрольные вопросы и задания

  1. Создайте функцию cube, которая возвращает куб передаваемого ей вещественного числа.
  2. Создайте функцию sum1, которая возвращает сумму натуральных чисел от 1 до передаваемого ей натурального числа n.
  3. Создайте функцию asterisk, аргументом которой является натуральное число n и которая возвращает строку, состоящую из n символов * (звездочка).