前回は「requireとrequire_onceの違い」を紹介しました。
今回は外部ファイルを読み込む別の命令の「includeとrequireの違い」について
書いていきます。
includeとrequireの違いは簡単に言えばエラーの扱い方が違います。
まずはサンプルプログラムを見てみましょう。
<?php require "sample_function2.php"; //このファイルが存在しないとする $a = "表示されるかな?"; echo $a; ?>
上のプログラムではrequireで外部ファイルであるsample_function2.phpを読み込もうと
しましたが、sample_function2.phpが存在しなかったとします。
この時、Fatal Error(=致命的なエラー)となり、そこで処理は終了します。
一方、同じプログラムをincludeで実行してみるとどうなるでしょうか。
まずはプログラムをみてみましょう。
<?php include "sample_function2.php"; //このファイルが存在しないとする $a = "表示されるかな?"; echo $a; ?>
includeを使った場合は「表示されるかな?」という文字が表示されているのが
わかると思います。
includeを使った場合はWarning(=警告)となり、Warningはそこで処理を止めずに、
処理は続きます。これがrequireとincludeの違いです。
エラーにしても処理を止めずに続けたいケースなんてあるのか?と思う方も
いるでしょうが、いろんなプログラムを書いているとそういうケースもあるもんなんです。
ちょっと具体的なケースがすぐには思いつきませんが。。。
最後に、includeとinclude_onceの違いについても触れておきましょう。
この2つの違いは、requireとrequire_onceの違いと同様で、
同じファイルを何度も読み込むか、1度しか読み込まないか?
という違いです。詳しくは前回の記事を見て下さい。