PHP にファイルをインクルードするには、include()、include_once()、require()、require_once() の 4 つの関数があります。それらの違いを理解することは、PHP 学習の基礎の 1 つであり、コードを記述するプロセスでの多くの不必要なトラブルを回避できます。
include()
1. メソッドの呼び出し: include(“/path/to/filename”)
2. 注: include() ステートメントは、呼び出し先のパラメーターで指定されたファイルをインクルードします。その効果は、ファイルの内容を include() が出現する場所にコピーするのと同じです。 include() を使用する場合、include "/path/to/filename" のように括弧は無視できます。
3. トラップ: if...else...条件文を使用してファイルを含めるかどうかを決定するときに、奇妙な現象が発生します。
など
if(式)
include("/パス/への/ファイル名");
それ以外
include("/path/to/anotherfilename");
?>
上記のコードは実行時に問題が発生する可能性があります。 include() 関数は、コードを形成するために {} を使用せずに、ファイルの内容を include() 関数が表示される場所にコピーするだけです。 ...ロジックがめちゃくちゃになります。したがって、このコードは次のように記述する必要があります:
if(式){
include("/パス/への/ファイル名");
}
それ以外{
include("/path/to/anotherfilename");
}
?>
これにより、インクルードされたファイルがコード ブロック全体に確実にインクルードされます。
include_once()
1. メソッドの呼び出し: include_once(“filename”)
2. 説明: 名前が示すように、このファイルは 1 回だけ含まれます。つまり、ファイルがすでにコンテキストに含まれている場合、そのファイルは含まれなくなります。
3. トラップ: include() 関数と同じトラップがあります。
require()
1. メソッドの呼び出し: require(“filename”)
2. 注: 次の 2 点を除いて、関数は include() と同じです。 (1) require() がプログラムフラグメントのどこに出現しても、ファイルをインクルードできます。次の手順を考えてみましょう:
if(false){
require("/パス/への/ファイル名");
}
それ以外{
require("/パス/への/別のファイル名");
}
?>
最初の条件付きテスト条件が false であっても、上記のステートメントにはファイル filename と anotherfilename の両方が含まれます。 (2) require() でエラーが発生した場合 (必要なファイルにエラーがない場合)、php スクリプト プログラムは実行を停止しますが、include() ではそのようなことは起こりません。
3. トラップ: include() と同じトラップがあります。
require_once()
1. メソッドの呼び出し: require_once(“filename”)
2. 注: ファイルが 1 回だけインクルードされることを除けば、他の関数は require() と同じです。
3. トラップ: require() と同じトラップがあります。