2015年11月2日

PHP requireとincludeの違い

«
»

Pocket

前回は「requireとrequire_onceの違い」を紹介しました。
 
今回は外部ファイルを読み込む別の命令の「includeとrequireの違い」について
書いていきます。
php require require_once include include_once 

includeとrequireの違い

includeとrequireの違いは簡単に言えばエラーの扱い方が違います
まずはサンプルプログラムを見てみましょう。
 


<?php
require "sample_function2.php"; //このファイルが存在しないとする

$a = "表示されるかな?";

echo $a; 

?>

実行結果

PHP require エラー

解説

上のプログラムではrequireで外部ファイルであるsample_function2.phpを読み込もうと
しましたが、sample_function2.phpが存在しなかったとします。
この時、Fatal Error(=致命的なエラー)となり、そこで処理は終了します。
 
一方、同じプログラムをincludeで実行してみるとどうなるでしょうか。
まずはプログラムをみてみましょう。
 


<?php
include "sample_function2.php"; //このファイルが存在しないとする

$a = "表示されるかな?";

echo $a; 

?>

実行結果

php include エラー

解説

includeを使った場合は「表示されるかな?」という文字が表示されているのが
わかると思います。
 
includeを使った場合はWarning(=警告)となり、Warningはそこで処理を止めずに、
処理は続きます。これがrequireとincludeの違いです。
 
エラーにしても処理を止めずに続けたいケースなんてあるのか?と思う方も
いるでしょうが、いろんなプログラムを書いているとそういうケースもあるもんなんです。
ちょっと具体的なケースがすぐには思いつきませんが。。。

includeとinclude_onceの違い

最後に、includeとinclude_onceの違いについても触れておきましょう。
 
この2つの違いは、requireとrequire_onceの違いと同様で、
同じファイルを何度も読み込むか、1度しか読み込まないか?
という違い
です。詳しくは前回の記事を見て下さい。

まとめ

・requireでは読み込みファイルが無いとFatal Error(=致命的なエラー)になる
・includeでは読み込みファイルが無いとWarning(=警告)になる
・Warningは処理を止めずに先のプログラムを実行する

【関連する記事】