ホームページ  >  記事  >  バックエンド開発  >  PHP インクルード ファイル関数 include、include_once、require、require_once_PHP チュートリアルの違いの概要

PHP インクルード ファイル関数 include、include_once、require、require_once_PHP チュートリアルの違いの概要

WBOY
WBOYオリジナル
2016-07-13 10:34:40938ブラウズ

include() および require() ステートメントは、指定されたファイルをインクルードして実行します。インクルード ファイル内の 2 つの構造はまったく同じで、唯一の違いはエラー処理です。 require() ステートメントは、インクルードされたファイルが存在しないことを検出するか、エラーが発生すると、停止してエラーを報告します。 include() してから続行します。

たとえば次のコード:

コードは次のとおりです: include('hello.php');

echo 'include test Final!';//include はエラーを報告しますが、実行は続行され、次のように表示されます。

require('hello.php');

echo 'require test Final!';//require はエラーを報告し、コードの実行を停止します。

一文で要約:

1.include() は警告を生成します

2.require() は致命的なエラーになります

言い換えれば、ファイルが見つからないときにページの処理を停止したい場合は、ためらわず require() を使用してください。 include() の場合はそうではなく、スクリプトは引き続き実行されます。また、適切な include_path が設定されていることを確認してください。

つまり、必要なファイルは、解析後ではなく、プログラムが再度解析されるときに読み取られます。必要なファイルが読み取れない場合、次のステップに進むことができません。したがって、ファイルが正しくインクルードされておらず、プログラムがインクルードされる可能性がある場合は、require を使用することをお勧めします。若干効率が良くなるかもしれません。

注: require() にはとにかくファイルが含まれますが、include() にはオプションで以下を含めることができます。

コードは次のとおりです:

if(FALSE){

require('x.php');

}

if(FALSE){

include('s.php');

}

?>

上記のコード: x.php は確実にインクルードされますが、s.php は確実にインクルードされません。

2 つの方法により、さまざまな使用上の柔軟性が提供されます:

require は require("MyRequireFile.php"); のように使用されます。この関数は通常、PHP プログラムの先頭に配置され、PHP プログラムが実行される前に、まず require で指定されたファイルを読み取り、それを PHP プログラムの Web ページの一部にします。

include は include("MyIncludeFile.php"); のように使用されます。この機能は通常、フロー制御の処理部に配置されます。 PHP プログラムの Web ページは、インクルード ファイルを読み取るときに、そのファイルを読み取ります。これにより、プログラムの実行処理を簡略化することができる。

1. 使用法と概要

1.インクルード()

構文: include(/path/to/filename)

include() ステートメントは、呼び出された場所にファイルをインクルードします。ファイルを含めると、指定されたファイルのデータがステートメントの場所にコピーされます。

include() を使用する場合、括弧は無視できます。

include() ステートメントは条件に基づいて実行できます。条件文で include() を使用すると、奇妙な現象が発生します。文ブロック中括弧またはその他の文括弧で囲む必要があります。

2. include_once()

構文: include_once(ファイル名)

include_once() ステートメントは、スクリプトの実行中に指定されたファイルをインクルードして実行します。この動作は include() ステートメントと似ていますが、唯一の違いは、 include_once() が最初にファイルが以前にインクルードされているかどうかを判断することです。インクルードされている場合、このインクルードは無視されます。

include_once() は、関数の再定義や変数の再割り当てなどの問題を避けるために、確実に 1 回だけインクルードされるようにしたい場合に使用する必要があります。

概要: include_once() 関数は include と同じ機能ですが、最初にファイルがインクルードされているかどうかを確認します。すでにインクルードされている場合、include_once は実行されなくなります。それ以外の場合は、ファイルを含める必要があります。これ以外は include と全く同じです。

3.require()

構文: require(ファイル名)

require() は include とほぼ同じで、require 呼び出しが存在する場所にテンプレート ファイルを含めます。

require と include の間には 2 つの重要な違いがあります。まず、require の場所に関係なく、require が発生するスクリプトに仕様ファイルがインクルードされます。たとえば、false と評価される if ステートメントに require が置かれている場合でも、指定されたファイルは引き続きインクルードされます。

2 番目の重要な違いは、require が失敗するとスクリプトの実行が停止するのに対し、include の場合はスクリプトの実行が継続されることです。

4.require_once()

構文: require_once(ファイル名)

require_once() ステートメントには、スクリプト実行中に指定されたファイルが含まれ、実行されます。この動作は require() ステートメントと似ていますが、唯一の違いは、require_once() がファイルが以前にインクルードされているかどうかを最初に判断することです。インクルードされている場合、このインクルードは無視されます。

require_once() は、関数の再定義や変数の再割り当てなどの問題を回避するために、確実に 1 回だけ組み込まれるようにしたい場合に使用する必要があります。

概要: Web サイトが大きくなるにつれて、一部のファイルが繰り返し含まれる可能性があります。これは問題ではないかもしれませんが、インクルードされたファイルの変数を変更すると、後で元のファイルが再びインクルードされるため、それらの変数は上書きされ、望ましくない可能性があります。発生する可能性のあるもう 1 つの問題は、インクルードされたファイル内の関数名が競合することです。これらの問題は、require_once を使用して解決できます。

require_once 関数は、ファイルが 1 回だけインクルードされることを保証します。 require_once が発生すると、その後同じファイルをインクルードしようとしても無視されます。

2. 違いのまとめ

1. include() ステートメントと require() ステートメントの違い。

2 つの違い: これら 2 つの構造は、障害の処理方法を除いてまったく同じです。

include() は警告を生成し、スクリプトは実行を継続します。

require() は致命的なエラーを引き起こし、スクリプトの実行が停止します。

言い換えれば、欠落ファイルまたはエラーが発生したときにページの処理を停止したい場合は、require() を使用します。エラーが発生したときにページの処理を続行したい場合は、include() を使用します。

PHP 4.3.5 より前では、インクルード ファイルの構文エラーによってプログラムが停止することはありませんでしたが、このバージョンからは停止することに注意してください。

2. include_once()、require_once() と include()、require() の違い

include_once() は、require_once() と同様、スクリプトの実行中に同じファイルが複数回インクルードされる可能性があり、関数の再定義や変数の再割り当てなどの問題を回避するために 1 回だけインクルードされるようにしたい場合に使用する必要があります。これが、include_once() と require_once()、および include() と require() の主な違いです。

3. 注意が必要な問題

1. パスの問題

特にインクルードをネストする場合は、インクルードされるファイルのパスに注意する必要があります。

たとえば、ファイル A にはファイル B が含まれており、ファイル B にはファイル C が含まれており、ファイル A、B、C は同じフォルダーにありません。このとき、間違いが発生しやすいです。

解決策: dirname(__FILE__) ステートメントを使用できます。これは、現在のスクリプトの絶対パスを取得することを意味します。例: require_once(dirname(__FILE__).'/config.php');

2. 効率の問題

include_once()、require_once() は、include()、require() と比較すると、少なくとも最初にファイルがインクルードされているかどうかを判断する必要があるため、効率が低くなります。この問題は PHP5 バージョンでは大幅に改善されましたが、効率にはまだ差があります。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/750257.html技術記事 include() および require() ステートメントは、指定されたファイルをインクルードして実行します。インクルード ファイル内の 2 つの構造はまったく同じで、唯一の違いはエラー処理です。インクルードされたファイルが見つかった場合、require() ステートメントは機能しません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。