1

php.netからのメモ(最後のメモ)に遭遇しました。メモを残した人は言った:

グローバルスコープでreturnを使用すると、EXECUTIONは終了しますが、PROCESSINGは終了しません。

「実行」と「処理」の正確な意味とその区別はわかりません。

4

1 に答える 1

1

これらの用語は両方ともユーザーによって書かれたものであり、PHPマニュアル自体からのものではないことに注意してください。ただし、同じPHPページがあなたの質問に答えます。

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

そのため、現在のファイルの処理がreturnで終了した場合でも、それを含むファイル(存在する場合)に制御が戻ります。それがどこにも含まれていなかった場合、処理と実行の両方がそこで停止します

また、そのサイトに関する1つの重要なコメントが説明しています

さて、phpが機能する方法は、実際のコードを実行する前に、いわゆる「処理」を実行することです。これは、実際には単なる構文チェックです。これは、そのファイルを実行する前に含まれるファイルごとに毎回行われます。これは、機能しないコードのどの部分も実行しないようにするための優れた機能です。あなたの例も言っているかもしれません...この構文チェックを行う際には、コードは実行されず、実行前にファイルを調べて(またはインクルードして)構文エラーをチェックするだけです。それを示すには、エコー「b」を配置する必要があります。そして「a」をエコーし​​ます。各ファイルの先頭。これは、「b」が1回エコーされ、次に「a」が1回だけエコーされることを示しています。これは、構文がa.phpを初めてチェックしたときに問題がなかったためです。

両方の引用のリファレンス:PHPマニュアル

于 2013-02-04T08:10:50.913 に答える