ホームページ > バックエンド開発 > PHPチュートリアル > PHP の include と require の違いの簡単な分析

PHP の include と require の違いの簡単な分析

不言
リリース: 2023-04-03 08:48:02
オリジナル
3767 人が閲覧しました

この記事では、PHP の include ファイル関数と require ファイル関数の違いについて説明します。必要な友人は参照してください。

たとえば、次のコード:

include('hello.php');
echo 'include test final!';//include报错,但是会继续执行,显示:include test final!
require('hello.php');
echo 'require test final!';//require报错,停止代码的执行。
ログイン後にコピー

一文の要約:
1.include() は警告を生成します
2.require() は致命的なエラーを引き起こします

言い換えると、ファイルが見つからないときにページの処理を停止したい場合は、ためらわず require() を使用してください。 include() の場合はそうではなく、スクリプトは引き続き実行されます。また、適切な include_path が設定されていることを確認してください。
つまり、必要なファイルは、解析後ではなく、プログラムが再度解析されるときに読み取られます。必要なファイルが読み取れない場合は、次のステップに進むことができません。したがって、ファイルが正しくインクルードされておらず、プログラムがインクルードされる可能性がある場合は、require を使用することをお勧めします。若干効率が良くなるかもしれません。

注: require() はとにかくファイルをインクルードしますが、include() は次のものを選択的にインクルードできます:

<?php
 if(FALSE){
   require(&#39;x.php&#39;);
 }
 if(FALSE){
   include(&#39;s.php&#39;);
 }
?>
ログイン後にコピー

上記のコードでは: x.php は必ずインクルードされ、s.php は必ずインクルードされます。含まれないこと。

2 つのメソッドは、さまざまな使用方法の柔軟性を提供します。
require は、require("MyRequireFile.php"); のように使用されます。この関数は通常、PHP プログラムの先頭に配置され、PHP プログラムが実行される前に、まず require で指定されたファイルを読み取り、それを PHP プログラムの Web ページの一部にします。
include は include("MyIncludeFile.php"); などのメソッドを使用します。この機能は通常、フロー制御の処理部に配置されます。 PHP プログラムの Web ページは、インクルード ファイルを読み取るときに、そのファイルを読み取ります。これにより、プログラムの実行処理を簡略化することができる。
1. 使用構文と概要

1. include()
構文: include(/path/to/filename)
include () ステートメントには、呼び出された場所にファイルが含まれます。ファイルを含めると、指定されたファイルのデータがステートメントの場所にコピーされます。
include() を使用する場合は括弧を無視できます。

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

2. include_once()
構文: include_once(filename)

include_once() ステートメントは、スクリプトの実行中に指定されたファイルをインクルードし、実行します。この動作は include() ステートメントに似ています。唯一の違いは、include_once() が最初にファイルが以前にインクルードされたかどうかを判断することです。インクルードされている場合、このインクルードは無視されます。
include_once() は、関数の再定義や変数の再割り当てなどの問題を回避するために、確実に 1 回だけインクルードされるようにする場合に使用する必要があります。

概要: 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)
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 バージョンでは大幅に改善されましたが、効率にはまだ差があります。

関連する推奨事項:

php での include_once、require_once、および include と require の使用シナリオと違い。

PHP の include と require の違い、phpincluderequire

以上がPHP の include と require の違いの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート