PHP の include と require の違いの詳しい説明
1. 概要
require() ステートメント の パフォーマンスは include() と似ています。 には が含まれており、指定されたファイルを実行します。違いは、 include() ステートメントの場合、ファイル を実行するたびに が を読み取り、 が を評価する必要があることです。 )、ファイル は 1 回だけ処理されます (実際、ファイルの内容は require() ステートメントを置き換えます)。これは、コードが複数回実行される可能性がある場合は、require() を使用する方が効率的であることを意味します。一方、コードが実行されるたびに異なるファイルを読み取る場合、または一連のファイルを反復処理するループがある場合は、include() ステートメントを使用します。
require の使用方法は次のとおりです: require("myfile.php") このステートメントは通常、PHP スクリプト プログラムの先頭に配置されます。 PHP プログラムが実行される前に、まず、require() ステートメント によって導入されたファイル を読み取り、それを PHP スクリプト ファイルの一部にします。 include の使用法は include("myfile.php") などの require と同じであり、このステートメントは通常、フロー制御の処理セクションに配置されます。 PHP スクリプト ファイルが include() ステートメントを読み取るとき、 の次に がそれに含まれるファイルを読み取ります。これにより、プログラムの実行処理を簡略化することができる。
- は が使用されるときにロードされます
- が
に必要です先頭でロード- _once 接尾辞は
ロードされたがロードされていないことを意味します PHP システムには、PHP プログラムをロードするときに 擬似コンパイルプロセスがあり、これによりプログラムの実行速度が向上します。ただし、インクルードのドキュメントはまだ解釈されています。インクルード ファイルにエラーがある場合、メイン プログラムは実行を継続します。要求ファイルにエラーがある場合、メイン プログラムも停止します。そのため、インクルード ファイルにエラーがあった場合でも、システムへの影響はほとんどありません。インターフェイス ファイルなど)、include を使用するか、それ以外の場合は require を使用します。 require() ステートメントと include() ステートメントは実際の関数ではなく言語構造です。たとえば、echo() は echo("ab") 形式を使用できます。 Echo "abc" 形式を使用すると、文字列 abc が出力されます。 require() および include() ステートメントでは、かっこを使用せずにパラメーターを直接追加することもできます。
include_once() および require_once() ステートメントには、スクリプトの実行中に指定されたファイルの実行も含まれます。この動作は include() ステートメントおよび require() に似ており、使用方法も同じです。唯一の違いは、ファイル内のコードが既にインクルードされている場合は、再度インクルードされないことです。これら 2 つのステートメントは、スクリプトの実行中に同じファイルが複数回インクルードされる可能性がある場合に使用して、関数の再定義や変数の再割り当てなどの問題を回避するためにファイルが 1 回だけインクルードされるようにする必要があります。
2. 詳細
2.1 エラー報告
include がファイルをインポートするときにエラーが発生すると、プロンプトが表示され、
実行を継続します次のコード。 require がファイルをインポートするときにエラーが発生すると、プロンプトが表示され、
以下のコードの実行を停止します。 例を使用して、test-include.php と test-require.php という名前の 2 つの php ファイルを同じディレクトリに作成しないように注意してください。
test-include.phpinclude 'test-nothing.php';
echo ' abc';?>
?
警告: include(test-nothing.php) [function.include]: ストリームを開けませんでした: D:wwwtest-include.php の 2 行目にそのようなファイルまたはディレクトリはありませんrequire 'test-nothing.php';
echo 'abc';
?>
http://localhost/ を参照test-include.php では、test-nothing.php ファイルが見つからなかったため、エラー メッセージの下に次のようなエラー メッセージが表示されました。警告
: include() [function.include]: D:wwwtest-include.php の行 2 にインクルード (include_path='.;C:php5pear') するために 'test-nothing.php' を開けませんでした
abchttp://localhost/test-require.php を参照します。test-nothing.php ファイルが見つからないため、エラー メッセージの下に abc が表示されない場合があります。これは次の状況と似ています:
警告: require(test-nothing.php) [function.require]: ストリームを開けませんでした: D:wwwtest- にそのようなファイルまたはディレクトリはありませんrequire.php 行 2
致命的な エラー: require() [function.require]: 必要な 'test-nothing' (include_path='.;C:php5pear') を開くことができませんでしたD:wwwtest- require.php 2行目?
2.2 条件付き参照
include()はrequire()と同じ機能ですが、使い方が若干異なります。 () は条件付き包含関数ですが、require() は無条件に関数を含みます。
たとえば、次の例では、変数 $somg が true の場合、ファイル somefile.php がインクルードされます:?
if($some){
include 'somefile.php';
}
ただし、$some の値に関係なく、次のコードはファイル somefile.php をファイルに含めます:
if($something){
require 'somefile.php';
}
次の例は、これら 2 つの関数の違いを完全に示しています:
$i = 1;
while ($i < 3 ) {
require "somefile.$i.php";
$i ;
}
あなた上記の段落から読み取ることができます。 コードから、プログラムが各ループに同じファイル を含めることがわかります。これは明らかに、このコードが同じファイルを含めることを望んでいることがわかります。各ループには異なるファイルが含まれます。この関数を完了したい場合は、関数 include() のみを使用できます:
$i = 1;while ($i < 3) {
2.3 ファイル参照方法 include()実行時に参照が必要なファイルは毎回読み込んで評価する必要があり、require()実行時に参照が必要なファイルは一度だけ処理されます(実際、実行中に参照する必要があるファイルの内容は、require() ステートメントを置き換えます)。これらの命令のいずれかを含むコードや、複数回実行される可能性のあるコードがある場合、より効率的であることがわかります。コードが実行されるたびに異なるファイルが読み込まれる場合、または一連の For file 反復ループがある場合は、 include() を使用して、含めるファイル名を変数に設定できます。パラメータが include() の場合に使用されます。 ??この記事の著作権はinclude "somefile.$i.php";
$i ;}Shopee★csAxp とブログに帰属します。パクさん、転載は歓迎ですが、著者の同意がない限り、この声明は保持され、記事ページのわかりやすい位置に原文へのリンクが提供されなければなりません。そうでない場合、私たちは法的責任を追及する権利を留保します。
- が