Значения возвращаются необязательной инструкцией возврата. Разрешается возвращать любой тип, включая массивы и объекты. Возврат немедленно завершает выполнение функции и передаёт управление обратно — к той строке кода, в которой вызвали функцию. Подробную информацию о возврате значений даёт описание инструкции return.
Замечание:
Функция вернёт значение
null
, если инструкцию return не указали.
Пример #1 Пример функции с инструкцией return
<?php
function square($num)
{
return $num * $num;
}
echo square(4); // Выводит 16
?>
Функция не умеет возвращать больше одного значения, но аналогичного результата добиваются возвратом массива.
Пример #2 Возврат набора значений в виде массива
<?php
function small_numbers()
{
return [0, 1, 2];
}
// Деструктуризация массива будет собирать каждый элемент массива индивидуально
[$zero, $one, $two] = small_numbers();
// До версии 7.1.0 единственной эквивалентной альтернативой была языковая конструкция list()
list($zero, $one, $two) = small_numbers();
?>
Оператор & указывают и в описании функции, и в момент присваивания возвращаемого значения переменной, чтобы функция возвращала результат по ссылке:
Пример #3 Возврат результата по ссылке
<?php
function &returns_reference()
{
return $someref;
}
$newref =& returns_reference();
?>
Дополнительную информацию о ссылках даёт раздел документации «Объяснение ссылок».