Языки программирования

Возврат значений из функции

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

Значения возвращаются при помощи необязательного оператора возврата. Возвращаемые значения могут быть любого типа, в том числе это могут быть массивы и объекты. Возврат приводит к завершению выполнения функции и передаче управления обратно к той строке кода, в которой данная функция была вызвана.

return возвращает управление программой в вызывавший модуль. Выполнение возвращается в выражение, следующее после вызова текущего модуля. Если вызвано из функции, выражение return немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции.

Если return вызывается из глобальной области видимости, выполнение текущего файла скрипта прекращается. Если текущий файл скрипта был подключен с помощью функций include или require, тогда управление возвращается к файлу, который вызывал текущий. Более того, если текущий файл скрипта был подключен с помощью include, тогда значение переданное return будет возвращено в качестве значения вызова include. Если return вызывается из главного файла скрипта, тогда выполнение скрипта прекращается. Если текущий файл скрипта был вызван конфигурационными опциями auto_prepend_file или auto_append_file из файла настроек php.ini, тогда выполнение этого скрипта прекращается.

Пример 1 Использование конструкции return
function square($num)
{
    return $num * $num;
}
echo square(4);   // выводит '16'.
Функция не может возвращать несколько значений, но это можно добиться, возвращая массив.

Пример 2 Возврат нескольких значений в виде массива.
function small_mass()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = small_mass();
Для того, чтобы функция возвращала результат по ссылке, вам необходимо использовать оператор & и при описании функции, и при присвоении переменной возвращаемого значения.
  function &returns_reference()
{
    return $someref;
}

$newref =& returns_reference();

Объявление типов возвращаемых значений

В PHP 7 добавлена возможность объявлять тип возвращаемого значения. Аналогично объявлению типов аргументов можно задать тип значения, которое будет возвращаться функцией. Типы, которые можно объявить для возвращаемых значений те же, что и для аргументов функций.
  function sum($a, $b): float {
    return $a + $b;
}

// Будет возвращаться значение типа float.
var_dump(sum(1, 2));
Возврат в режиме строгой типизации
 declare(strict_types=1);

function sum($a, $b): int {
    return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1, 2.5));
Возврат объектов
class C {}

function getC(): C {
    return new C;
}

var_dump(getC());
Самоучитель по PHP