プログラム開発の情報や、雑記を投稿しているサイトです。

PHP | include_onceとrequire_onceの違いについて

include_onceとrequire_onceの違いについてのサムネイル画像

include_onceとrequire_onceの違いを明確に把握しておらず、今更ですが、違いを調べてみました。
下の公式サイトに記載されているとおり、大きな違いは、エラー時の動作が異なります。

公式サイト
http://jp2.php.net/manual/ja/function.include.php

具体的には、include_onceは、対象ファイルが見つからない場合に、「Warning」を発行し以降の処理を続行します。

この対象ファイルを検索する範囲は、呼出元のスクリプトのディレクトリと、現在の作業ディレクトリになります。

一方の、require_onceは、対象ファイルが見つからない場合に、「fatal_error」を発行し以降の処理を中断します。

そのため、対象ファイルが取込めないことで、重大なエラーとなる処理の場合には、require_onceを使用することが推奨されています。

サンプルプログラム

エラーが発生しないパターン

エラーが発生するパターン

上記の実行結果からわかるように、
include_onceは、対象ファイルが見つからない場合でも、以降の処理を実行しています。

一方のrequire_onceは、以降の処理を中断します。

この理由から、重要な共通ファイルなど見つからない場合に、処理を中断したい場合は、
require_onceを利用することが推奨されています。