return
(PHP 4, PHP 5, PHP 7, PHP 8)
return
は、プログラムの制御を呼び出し元に戻します。
呼び出し側のモジュールでは、呼び出しの次の式から続行します。
関数内で呼び出されると、return
文は即座に
その関数の実行を停止し、引数を関数の値として返します。
return
はまた、eval()文や
スクリプト自体の実行を終了させることが出来ます。
グローバルスコープで呼び出されると、現在実行中のスクリプトが終了
します。もしそのスクリプトが
include もしくは
require
されたものである場合、制御は呼び出し元
のファイルに戻ります。また、そのスクリプトが include
されたものである場合は、return
に与えられた引数
の値は include の戻り値となります。
return
がメインスクリプトで呼び出された場合は
スクリプトが終了します。また、
設定ファイルの
auto_prepend_file 又は
auto_append_fileオプションで指定されたスクリプトの場合も
同様にそのスクリプトが終了します。
さらに詳しい情報に関しては 戻り値を参照ください。
注意:
return
は関数ではなく言語構造であるため、 引数を括弧で囲う必要はなく、括弧の使用は推奨されないことに注意しましょう。
注意: パラメータを省略した場合は括弧も省略する必要があります。この場合の戻り値は
null
です。return
に括弧をつけてコールしながら何も引数を指定しないと、 パースエラーとなります。
PHP 7.1.0 以降では、戻り値の型を宣言している関数で、
かつ戻り値の型が void でない場合、
引数がない return 文を使うと E_COMPILE_ERROR
が発生するようになりました。
戻り値の型が void の場合、
return
文に引数があると、同様のエラーが発生します。
User Contributed Notes 2 notes
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".
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".