include と require と require_once ステートメントの違いは何ですか?
ステートメント include と require と require_once の違いは何ですか?
-----解決策----- --- ------------
include() ステートメントは、指定されたファイルをインクルードして実行します。
この 2 つの構造は、障害の処理方法を除いて同一です。 include() は警告を生成し、require() は致命的なエラーを引き起こします。つまり、ファイルが見つからない場合にページの処理を停止したい場合は、require() を使用します。 include() の場合はそうではなく、スクリプトは引き続き実行されます。また、適切な include_path が設定されていることを確認してください。 PHP 4.3.5 より前では、インクルード ファイル内の構文エラーによってプログラムが停止することはありませんでしたが、このバージョン以降は停止することに注意してください。
include_once
include_once() ステートメントは、スクリプトの実行中に指定されたファイルをインクルードし、実行します。この動作は include() ステートメントに似ていますが、唯一の違いは、ファイル内のコードが既にインクルードされている場合、再度インクルードされないことです。このステートメントの名前が示すように、このステートメントは 1 回だけ含まれます。
include_once() は、スクリプトの実行中に同じファイルが複数回インクルードされる可能性があり、関数の再定義や変数の再割り当てなどの問題を避けるために、ファイルが 1 回だけインクルードされるようにしたい場合に使用する必要があります。
require_once
require_once() ステートメントには、スクリプトの実行中に指定されたファイルが含まれ、実行されます。この動作は require() ステートメントに似ていますが、唯一の違いは、ファイル内のコードが既にインクルードされている場合、再度インクルードされないことです。このステートメントがどのように機能するかについては、require() のドキュメントを参照してください。
require_once() は、スクリプトの実行中に同じファイルが複数回インクルードされる可能性があり、関数の再定義や変数の再割り当てなどの問題を避けるために、ファイルが 1 回だけインクルードされるようにしたい場合に使用する必要があります。
------解決策------
1. include()
include( / path/to/filename)
include() ステートメントは、呼び出された場所にファイルをインクルードします。ファイルを含めると、指定されたファイルのデータがステートメントの場所にコピーされます。
include() を使用する場合、括弧は無視できます。
include() ステートメントは条件に基づいて実行できます。条件文で include() を使用すると、奇妙な現象が発生します。文ブロック中括弧またはその他の文括弧で囲む必要があります。
2. include_once()
include_once(filename)
include_once() 関数は include と同じ機能ですが、最初にファイルがインクルードされているかどうかを確認します。すでにインクルードされている場合、include_once は実行されなくなります。それ以外の場合は、ファイルを含める必要があります。これ以外は include と全く同じです。
3. require()
require(filename)
require() は include とほぼ同じで、require 呼び出しが存在する場所にテンプレート ファイルが含まれます。
require と include の間には 2 つの重要な違いがあります。まず、require の場所に関係なく、require が発生するスクリプトに仕様ファイルがインクルードされます。たとえば、false と評価される if ステートメントに require が置かれている場合でも、指定されたファイルは引き続きインクルードされます。
2 番目の重要な違いは、require が失敗するとスクリプトの実行が停止するのに対し、include の場合はスクリプトの実行が継続されることです。
4. require_once()
require_once(filename)
Web サイトが大きくなるにつれて、一部のファイルが繰り返し含まれる可能性があります。これは問題ではないかもしれませんが、インクルードされたファイルの変数を変更すると、後で元のファイルが再度インクルードされるため、それらの変数は上書きされ、望ましくない可能性があります。発生する可能性のあるもう 1 つの問題は、インクルードされたファイル内の関数名が競合することです。これらの問題は、require_once を使用して解決できます。
require_once 関数は、ファイルが 1 回だけインクルードされることを保証します。 require_once が発生すると、その後同じファイルをインクルードしようとしても無視されます。