web-dev-qa-db-ja.com

PHP exit()が含まれているスクリプト内から、親スクリプトを終了しますか?

PHPで、include()関数またはrequire()関数を使用して別のスクリプトでコードの実行を開始した場合、子内から親スクリプトを終了する方法はありますか?

だから私はparent.phpにこれを持っていると言います:
require('child.php');

そしてこれはchild.phpにあります:
exit();

それはchild.phpだけ、またはparent.phpも終了しますか?
parent.phpにコードを追加せずに、child.php内からparent.phpを終了する方法はありますか?

これは、PHPの精巧なカスタム404エラーページ用であり、ErrorDocumentを使用してApacheによって呼び出されたかどうか、またはユーザーが存在しないカスタムCMSからページを要求したかどうかを検出します。後者の場合は、404.php(子)とそこからの出力を要求し、親の実行を続行しないようにします。

含まれている/必要なスクリプト内から親PHPスクリプトを終了することが可能かどうか誰か知っていますか?

30
batfastad

exit();それはchild.phpだけ、またはparent.phpも終了しますか?

スクリプト全体が終了します。

それをしたくないが、インクルードスクリプトに戻る場合は、インクルード内からreturnできます。

54
Pekka 웃

returnを探しています。コマンド。これにより、child.phpのみの実行が終了し、その後、parent.phpが処理されます。

14
Sandeep Kumar

含まれている/必要なスクリプト内から親PHPスクリプトを終了することが可能かどうか誰か知っていますか?

使用できます

die();

任意の時点で任意のスクリプトのさらなる実行を終了します。 Dieを使用すると、親スクリプトも終了します。

die("End");

「終了」を出力します。

3
Pheonix

実際、exit;child.php行は、現在のphpプロセスを終了します。つまり、parent.phpは正常に終了します。

2
anubhava

例外をスローしてスクリプトを終了し、親スクリプトの1つでキャッチすることもできます。

このようにして、どのスクリプトを終了し、「include/require」ファイルのスタックのどこで続行するかを正確に制御できます。

1
jbaylina

dieexitは、どちらも害を及ぼすことなく終了します。これは、キャッチまたは元に戻すことができないアプリケーションレベルのコマンドです。

1
cwallenpoole

インクルードファイルが存在する必要があるが、メインスクリプトから続行する場合は、returnを使用できます。

リターン

(PHP 4、PHP 5、PHP 7)

returnは、プログラム制御を呼び出し元のモジュールに返します。実行は、呼び出されたモジュールの呼び出しに続く式で再開されます。

関数内から呼び出された場合、returnstatementは現在の関数の実行をただちに終了し、その引数を関数呼び出しの値として返します。 returnは、eval()ステートメントまたはスクリプトファイルの実行も終了します。

グローバルスコープから呼び出された場合、currentscriptファイルの実行は終了します。現在のスクリプトファイルが含まれている、または必要な場合、制御は呼び出し元のファイルに戻されます。さらに、現在のスクリプトファイルがインクルードされている場合、returnに指定された値は、include呼び出しの値として返されます。メインスクリプトファイル内からreturnが呼び出された場合、スクリプトの実行は終了します。現在のスクリプトファイルがphp.iniのauto_prepend_fileまたはauto_append_fileconfigurationオプションによって名前が付けられている場合、そのスクリプトファイルの実行は終了します。

0
Ehsan Chavoshi

exit()を使用すると、スクリプトの実行が停止し、子とすべての親が終了します。

0
Darth Android

あなたは例外を投げることを試みることができます:

throw new Exception('An Error Ocurred');
0
Edgar Ortega