ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

PHPのincludeとrequireについて

PHPでのincludeとrequireの違いについて人に教える機会がありました。

まあ、PHPを普段から使っている人にとっては基本的なことでしょう。

が、教える対象が新人だったこともあり、これらの違いと
その根拠となるページのリンクを明示したので
備忘録を兼ねてUPしておきます。

◆includeとrequireの違い
http://jp2.php.net/manual/ja/function.require.php
「require は include とほぼ同じですが、失敗した場合に E_COMPILE_ERROR レベルの致命的なエラーも発生する」
「一方 include の場合は、警告 (E_WARNING) を発するもののスクリプトの処理は続行」

◆requireとrequire_onceの違い
http://jp2.php.net/manual/ja/function.require-once.php
「require_once 文は require とほぼ同じ意味ですが、 (中略)すでに読み込まれている場合はそのファイルを読み込みません。」

◆includeとinclude_onceの違い
http://jp2.php.net/manual/ja/function.include-once.php
「include_once 命令は、スクリプトの実行時に指定 したファイルを読み込み評価します。(中略)その名が示す通り、ファイルは一度しか読み込まれません。」

今の案件では、指定したファイルの読み込みに失敗した場合にエラーを発生させ、重複読み込みを避けるため
require_onceを使うのがいいかなあという感じです。