PHP の include、require、include_once、require_once の違いを理解する
PHP を使用するときに遭遇する一般的なタスクの 1 つは、外部ファイルをスクリプトに組み込むことです。 PHP は、このタスクのためにいくつかのメカニズム、つまり include、require、include_once、require_once を提供します。これらのステートメントは、コードをモジュール化し、アプリケーションのさまざまな部分でファイルを再利用できるようにするために不可欠です。ただし、効率的で保守可能な PHP コードを作成するには、これらのコマンドの違いを理解することが重要です。
この記事では、これらのステートメントのそれぞれについて説明し、その動作を説明し、相違点を強調し、実際の使用例を示します。
1. include ステートメント
インクルードとは何ですか?
PHP の include ステートメントは、スクリプトの実行中に指定されたファイルをインクルードして評価するために使用されます。ファイルが見つかった場合は、そのファイルが一度組み込まれ、スクリプト内のその時点で実行されます。
インクルードの動作:
- 指定されたファイルが見つからない場合、PHP は 警告 (E_WARNING) を発行しますが、スクリプトの実行は続行されます。
- 警告メッセージには、見つからなかったファイルのパスが含まれます。
- スクリプトの実行は停止されないため、インクルードされたファイルが重要でない場合、スクリプトは中断されることなく実行を継続できます。
インクルードの使用例:
ファイルがプログラムのフローにとって重要ではなく、ファイルが見つからない場合でもスクリプトを続行できる場合に include を使用できます。これは、オプションのテンプレート、構成ファイル、ログ記録メカニズムなどの必須ではないファイルによく使用されます。
例:
// Including a non-critical file include 'header.php'; // This will continue if header.php is missing echo "This part of the script will run regardless of the missing header file.";
インクルードを使用する理由
- ページ テンプレートや必須ではない設定などのオプション ファイルを含める場合に便利です。
- ファイルをインクルードできない場合でも、スクリプトが機能し続けることを許可します。
2. require ステートメント
必須とは何ですか?
include と同様に、require ステートメントは、PHP でファイルをインクルードして評価するために使用されます。ただし、主な違いはエラーの処理方法です。
require の動作:
- ファイルが見つからない場合、またはファイルを含めることができない場合、PHP は 致命的エラー (E_COMPILE_ERROR) を発行し、スクリプトは実行を直ちに停止します。
- インクルードとは異なり、ファイルが見つからない場合、重要な場合はスクリプトが停止します。
require の使用例:
インクルードされたファイルがアプリケーションの機能にとって必須の場合は、require を使用する必要があります。たとえば、定数を設定したり、アプリケーションの重要な機能を含む構成ファイルは、require に含める必要があります。ファイルが見つからない場合、実行を続行すると、予期しない動作や障害が発生する可能性があります。
例:
// Including a non-critical file include 'header.php'; // This will continue if header.php is missing echo "This part of the script will run regardless of the missing header file.";
require を使用する理由
- 設定ファイルやデータベース接続スクリプトなど、インクルードされたファイルがスクリプトの機能に不可欠な場合。
- スクリプトの後半で予期しないエラーやクラッシュが発生するのを避けるために、ファイルが見つからない場合はスクリプトの実行が停止するようにしたいと考えています。
3. include_once ステートメント
include_once とは何ですか?
include_once ステートメントは include ステートメントに似ていますが、重要な違いが 1 つあります。コード内で include_once ステートメントが何回呼び出されても、ファイルはスクリプトの実行中に 1 回だけインクルードされることが保証されます。
include_once の動作:
- include と同じようにファイルをインクルードしようとします。
- ファイルが以前に現在のスクリプトに既に組み込まれている場合、そのファイルは再び組み込まれません。
- ファイルが見つからない場合は、include と同様に 警告 が発行されますが、スクリプトは実行を続けます。
include_once の使用例:
通常、インクルードを呼び出す回数に関係なく、一度だけインクルードする必要がある関数またはクラス定義を含む可能性のあるファイルをインクルードする場合は、 include_once を使用します。たとえば、クラスを複数回定義するファイルをインクルードすると、再定義エラーが発生する可能性があるため、インクルードしないでください。
例:
// Including a critical file require 'config.php'; // This will stop the script if config.php is missing echo "This will not run if config.php is not found.";
include_once を使用する理由
- ファイルを複数回含めることを防ぎます。
- ユーティリティ ファイルや構成ファイルなど、一度だけ含める必要があるファイルに関数、クラス、または定数を定義する場合に便利です。
4. require_once ステートメント
require_once とは何ですか?
require_once ステートメントは require と同様に機能しますが、スクリプトの実行中にファイルが 1 回だけ含まれるようにするという追加の動作が異なります。
require_once の動作:
- require と同じようにファイルをインクルードしようとします。
- ファイルが既にインクルードされている場合は、再度インクルードされないため、クラス、関数、または定数の再定義エラーが防止されます。
- ファイルが見つからない場合は、require と同様に、致命的なエラーが発生し、スクリプトの実行が停止されます。
require_once の使用例:
データベース接続ファイル、構成ファイル、クラス定義など、一度だけ含める必要がある必須ファイルを含める場合は、require_once を使用する必要があります。これは、再定義のリスクなしに重要なファイルが 1 回だけ組み込まれるようにするための最も堅牢で安全な方法です。
例:
// Including a non-critical file include 'header.php'; // This will continue if header.php is missing echo "This part of the script will run regardless of the missing header file.";
require_once を使用する理由
- 構成ファイルやクラス定義など、スクリプトにとって重要なファイルをインクルードし、それらのファイルが 1 回だけインクルードされるようにする必要がある場合。
- ファイルが複数回インクルードされないようにすることで、再定義エラーを防ぎます。
include、require、include_once、require_once の比較
Statement | Behavior if File is Missing | Includes Only Once | Error Type |
---|---|---|---|
include | Warning, continues script | No | Warning (E_WARNING) |
require | Fatal error, halts script | No | Fatal error (E_COMPILE_ERROR) |
include_once | Warning, continues script | Yes | Warning (E_WARNING) |
require_once | Fatal error, halts script | Yes | Fatal error (E_COMPILE_ERROR) |
重要なポイント:
- include: ファイルがオプションであり、ファイルが見つからなくてもスクリプトが停止しない場合に使用します。
- require: ファイルが重要な場合に使用し、ファイルが見つからない場合はスクリプトを停止する必要があります。
- include_once: ファイルはオプションですが、重複を避けるために一度だけ含める必要がある場合に使用します。
- require_once: ファイルが重要であり、一度だけ含める必要がある場合に使用します。
結論
適切なインクルード ステートメントの選択は、インクルードするファイルの性質と強制したい動作によって異なります。 require と require_once は通常、重要なファイルに使用されますが、include と include_once は重要でないファイルに適しています。これらのステートメントの 1 回バージョンを使用すると、複数のインクルードが含まれる場合の再定義エラーなどの問題を防ぐことができます。
これらの違いを理解することで、より信頼性が高く、モジュール化された、エラーのない PHP コードを作成でき、ファイルが欠落している場合や重複している場合でもアプリケーションが正しく機能することが保証されます。
以上がPHP の include、require、include_once、require_once の違いを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
