Параметры функций в PHP

При вызове функции мы пишем ее имя и пустые круглые скобки:

<?php func(); ?>

На самом деле скобки не обязательно должны быть пустыми - в них мы можем передавать параметры.

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

Как мы теперь будем вызывать нашу функцию: мы будем писать имя функции, круглые скобки, а в них - какое-то число, квадрат которого мы хотим получить.

К примеру, вот так мы получим квадрат числа 2:

<?php func(2); // выведет 4 ?>

А вот так - квадрат числа 3:

<?php func(3); // выведет 9 ?>

Давайте теперь напишем реализацию нашей функции.

Мы знаем, что функция параметром должна принимать число. Значит, при определении функции в круглых скобках мы должны написать какую-то переменную, в которую будет попадать переданное число.

Название переменной может быть любым, давайте, например, назовем ее $num:

<?php function func($num) { } ?>

В эту переменную $num при вызове функции будет попадать указанное в круглых скобках число:

<?php func(2); // в переменную $num попадет число 2 func(3); // в переменную $num попадет число 3 ?>

Давайте теперь сделаем так, чтобы наша функция выводила квадрат переданного числа. Для этого перемножим переменную $num саму на себя и выведем на экран:

<?php function func($num) { echo $num * $num; } ?>

Проверим работу функции, вызвав ее с различными числами:

<?php function func($num) { echo $num * $num; } func(2); // выведет 4 func(3); // выведет 9 ?>

Сделайте функцию, которая параметром принимает число и выводит на экран куб этого числа.

Сделайте функцию, которая параметром принимает число и проверяет, положительное это число или отрицательное. В первом случае пусть функция выводит на экран текст '+++', а во втором '---'.

Несколько параметров

Функция может принимать не один параметр, а несколько. В этом случае их нужно перечислить через запятую. Давайте для примера сделаем функцию, параметром принимающую два числа и выводящую на экран их сумму:

<?php function func($num1, $num2) { echo $num1 + $num2; } func(1, 2); // выведет 3 ?>

Сделайте функцию, которая параметрами принимает 3 числа и выводит на экран сумму этих чисел.

Параметры-переменные

Давайте рассмотрим следующий код:

<?php function func($num) { echo $num * $num; } func(2); ?>

Как вы видите, в при вызове функции в нее передается число 2.

Не обязательно параметром функции передавать именно число - можно передать и переменную, содержащую нужное нам число:

<?php function func($num) { echo $num * $num; } $param = 2; func($param); ?>

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

<?php $param1 = 1; $param2 = 2; $param3 = 3; ?>

Необязательные параметры

Пусть у нас есть функция, которая параметром принимает имя и выводит его на экран:

<?php function func($name) { echo 'ваше имя: ' . $name; } ?>

Проверим работу нашей функции:

<?php func('Вася'); // выведет 'ваше имя: Вася' ?>

Давайте теперь сделаем так, чтобы имя было не обязательным: если оно будет введено, то выведется на экран, а если не введено - то пусть принимает значение 'Аноним'.

Для того, чтобы сделать параметр необязательным, для него нужно определить значение по умолчанию. Для этого при определении параметра нужно поставить знак = и желаемое значение, вот так:

<?php function func($name = 'Аноним') { echo 'ваше имя: ' . $name; } ?>

Проверим теперь работу нашей функции:

<?php // Без параметра: func(); // выведет 'ваше имя: Аноним' // С параметром: func('Вася'); // выведет 'ваше имя: Вася' ?>

Пусть теперь наша функция принимает два параметра: имя и возраст:

<?php function func($name, $age) { echo 'ваше имя: ' . $name . ' возраст: ' . $age; } ?>

Давайте сделаем так, чтобы возраст был необязателен:

<?php function func($name, $age = 'неизвестен') { echo 'ваше имя: ' . $name . ' возраст: ' . $age; } ?>

А теперь сделаем так, чтобы и имя, и возраст были необязательны:

<?php function func($name = 'Аноним', $age = 'неизвестен') { echo 'ваше имя: ' . $name . ' возраст: ' . $age; } ?>

А вот сделать так, чтобы имя было необязательным, а возраст - нет, нельзя. Дело в том, что все необязательные параметры следует писать в конце. Смотрите пример:

<?php // так не будет работать function func($name = 'Аноним', $age) { echo 'ваше имя: ' . $name . ' возраст: ' . $age; } ?>

Дана функция:

<?php function func($num = 5) { echo $num * $num; } ?>

Эта функция вызывается следующим образом:

<?php func(2); func(3); func(); ?>

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

Дана функция:

<?php function func($num1 = 0, $num2 = 0) { echo $num1 + $num2; } ?>

Эта функция вызывается следующим образом:

<?php func(2, 3); func(3); func(); ?>

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