PHP 8.4.0 RC4 available for testing

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 文に引数があると、同様のエラーが発生します。

add a note

User Contributed Notes 2 notes

up
180
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
73
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