PHP :: Возврат значения функцией
Оператор return в PHP
Довольно часто при вызове функции она не только выполняет указанный фрагмент программного кода, но и возвращает некоторое значение, которое является результатом ее работы. Осуществляется операция возврата при помощи необязательного оператора return, который немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции. При этом оператор return может быть расположен в любом месте функции и, когда до него доходит управление, функция возвращает значение и завершает свое выполнение, передавая управление обратно к той строке кода, в которой данная функция была вызвана. Если оператор return не указан или не указано возвращаемое им значение, то функция вернет значение NULL (см. пример №1).
<?php //Создаем функцию, принимающую два аргумента function m_sum($a_1,$a_2){ //Вычисляем сумму и присваиваем переменной $sum = $a_1+$a_2; //Возвращаем сумму в качестве значения функции return $sum; //Эта инструкция выполнена не будет, т.к. //находится после оператора return $sum=100; } //Выведет 15 echo m_sum(5,10); ?>
Пример №1. Возврат значений функции
Так как оператор return является языковой конструкцией, а не функцией, то использовать круглые скобки не нужно, иначе это может привести к нежелательным эффектам.
Также следует добавить, что оператор return может использоваться и в глобальной области видимости, т.е. вне функций. В таком случае он прекращает выполнение всего текущего файла скрипта.
В PHP функции не могут возвращать несколько значений, но аналогичного результата можно добиться, возвращая массив (см. пример №2).
<?php //Используем список аргументов переменной длины function m_sum(...$sum){ //Задаем стартовое значение счетчика $i=0; //Перебираем все значения массива аргументов foreach($sum as $value){ //Помещаем аргументы функции в массив $new_array[$i]=$value; //Увеличиваем значение счетчика на единицу $i+=1; } //Возвращаем полученный массив return $new_array; } //Выведет второй элемент массива, т.е. 10 echo m_sum(5,10,15,20)[1]; /* Таким образом, данная функция принимает аргументы, помещает их в массив и затем возвращает этот массив в качестве своего значения */ ?>
Пример №2. Возврат значения функции в виде массива значений
Объявление типа возвращаемого значения функции
В PHP 7.0.0 была добавлена возможность объявлять тип возвращаемого значения, аналогично объявлению типов принимаемых функцией аргументов. Соответственно, особенности, касающиеся как режима слабой типизации, так и режима строгой типизации, справедливы и для возвращаемых функцией значений. Это значит, что в случае несоответствия возвращаемого значения указанному типу в режиме слабой типизации делается попытка привести значение к корректному типу, а при включенном режиме строгой типизации, сразу же выводится ошибка.
Указывается тип возвращаемого значения при объявлении функции после круглых скобок с параметрами и двоеточия перед открывающей скобкой тела функции (см. пример №3).
<?php //Задаем режим строгой типизации для скрипта declare(strict_types=1); //Задали тип string возвращаемого значения function my_sum(int $a,int $b): string{ $sum=$a+$b; //Возвращаемое значение должно быть типа string return $sum; } //При вызове функции выведет ошибку echo my_sum(5,2); /* Напомним, что исключение составляет передача значения целочисленного типа функции, которая ожидает получить значение типа float. */ ?>
Пример №3. Объявление типа возвращаемого функцией значения
Быстрый переход к другим страницам
- Контроль типа аргументов в PHP
- Возврат значения функцией в PHP
- Обращение к функциям через переменные в PHP
- Вернуться к оглавлению учебника