1. PHP

【PHP】requireとrequire_once、includeとinclude_onceの違いとは?使い分けのコツを解説

Share

PHPで複数ファイルを組み合わせて開発する際に欠かせないのが、requireinclude などの「ファイル読み込み構文」です。

この記事では、それぞれの特徴や違い、使い分けのポイントをわかりやすく解説します。

require とは?

require は、指定したファイルを読み込む構文です。もし読み込むファイルが存在しなかった場合、**致命的なエラー(fatal error)**を発生させ、スクリプトの実行を停止します。

require 'header.php';

使うべき場面

  • 読み込むファイルが 必須 な場合(ヘッダーや共通処理など)
  • ファイルがない状態で処理を続行できないケース

require_once とは?

require_once は、require と同じようにファイルを読み込みますが、同じファイルを2回以上読み込まないようにする機能が付いています。重複読み込みを防ぎたい場合に便利です。

require_once 'header.php';

使うべき場面

  • 同じスクリプト内で、同じファイルが複数回読み込まれる可能性がある場合
  • クラスや関数を定義しているファイル(多重定義によるエラー防止)

include とは?

include は、指定したファイルを読み込みますが、ファイルが存在しない場合でも 警告(warning)を出して処理を続行します。

include 'header.php';

使うべき場面

  • 読み込むファイルが あれば使うが、なくてもスクリプトの実行を止めたくない場合
  • オプション的に表示するバナーやパーツなど

include_once とは?

include_once は、include と同様にファイルを読み込み、さらに 同じファイルを2回以上読み込まないようにする機能を持ちます。

include_once 'header.php';

違いのまとめ

構文ファイルがない場合の挙動同じファイルの多重読み込み防止
requireエラーで処理を停止なし
require_onceエラーで処理を停止あり
include警告を出し処理は継続なし
include_once警告を出し処理は継続あり

require と include の使い分けのコツ

  • ファイルが必須の場合は require / require_once を使う
  • ファイルがオプション的な役割で、なくても問題ない場合は include / include_once を使う
  • 同じファイルを複数箇所で読み込む可能性がある場合は require_once / include_once を使い、重複定義を防ぐ

以下は記事に追記できる「__DIR__を使ったパス指定方法」の解説です。パスの管理を安全にするためのポイントを含めています。

DIR を使ったパス指定方法

PHPでファイルを読み込む際、相対パスだとスクリプトを呼び出す場所によって正しく動作しないことがあります。

そんなときに便利なのが __DIR__ 定数 です。__DIR__現在のファイルが存在するディレクトリの絶対パスを返すため、確実に目的のファイルを読み込むことができます。

例:DIR を使った require

require __DIR__ . '/header.php';

このように書くことで、スクリプトがどこから呼ばれても、現在のスクリプトと同じディレクトリにある header.php を確実に読み込めます。

DIR を使うメリット

  • スクリプトの実行場所に依存しないため、CLIやサーバー環境でも安定して動作する
  • サイト全体で同じ基準のパスを使えるため、保守性が上がる
  • ディレクトリ階層が深くなっても相対パスを数え直す必要がない

サブディレクトリにあるファイルを読み込む場合

例えば、現在のスクリプトと同じディレクトリにある includes/config.php を読み込みたい場合は以下のように記述します。

require __DIR__ . '/includes/config.php';

ドキュメントルートからの絶対パスで管理したい場合

大規模なプロジェクトでは、ルートディレクトリのパスを定数化して共通化するのもおすすめです。

define('BASE_PATH', __DIR__);
require BASE_PATH . '/includes/config.php';

このようにすることで、全ファイルで BASE_PATH を基準にファイルパスを統一できます。

まとめ

PHPのファイル読み込みは、コードの分割や再利用性を高めるうえで重要なテクニックです。

ファイルの有無で処理を止めるかどうか、同じファイルが複数回読み込まれる可能性があるかを考慮して、最適な構文を選びましょう。

公式リファレンス