При вызове функции мы пишем ее имя и пустые круглые скобки:
<?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();
?>
Расскажите, каким будет результат каждого из вызовов функции.