PHP Conference Nagoya 2025

return

(PHP 4, PHP 5, PHP 7, PHP 8)

Инструкция return возвращает управление программой модулю, из которого выполнили вызов. Выполнение программы продолжается в модуле — с выражения, которое идёт за местом вызова.

При вызове из функции инструкция return немедленно прекращает выполнение функции и возвращает свой аргумент как значение вызова функции. Инструкция return также завершит выполнение инструкции eval() или файла скрипта.

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

Дополнительную информацию даёт раздел «Возврат значений».

Замечание: Обратите внимание: поскольку инструкция return — языковая конструкция, а не функция, круглые скобки вокруг аргумента инструкции необязательны и не приветствуются.

Замечание: При вызове без аргумента инструкция return вернёт null. При вызове инструкции возврата без аргумента круглые скобки указывать нельзя. Вызов инструкции return со скобками, но без аргумента вызовет синтаксическую ошибку.

Начиная с PHP 7.1.0 инструкции возврата без аргумента в функциях, которые объявляют возвращаемый тип, вызывают ошибку уровня E_COMPILE_ERROR, если только возвращаемый тип не void, тогда инструкции возврата с аргументом вызывают такую ошибку.

Добавить

Примечания пользователей 2 notes

up
182
warhog at warhog dot net
18 years ago
for those of you who think that using return in a script is the same as using exit note that: using return just exits the execution of the current script, exit the whole execution.

look at that example:

a.php
<?php
include("b.php");
echo
"a";
?>

b.php
<?php
echo "b";
return;
?>

(executing a.php:) will echo "ba".

whereas (b.php modified):

a.php
<?php
include("b.php");
echo
"a";
?>

b.php
<?php
echo "b";
exit;
?>

(executing a.php:) will echo "b".
up
79
J.D. Grimes
11 years ago
Note that because PHP processes the file before running it, any functions defined in an included file will still be available, even if the file is not executed.

Example:

a.php
<?php
include 'b.php';

foo();
?>

b.php
<?php
return;

function
foo() {
echo
'foo';
}
?>

Executing a.php will output "foo".
To Top