PHP includeとrequireの違い(外部ファイル読み込み)

目次

includeとrequireの違いのまとめ

ファイルがないとき 用途 使われ方
include Warning (警告) を出してスクリプトは 処理を続行 任意のファイル読み込み(読み込めなくても処理を続けたいとき) 任意ファイルのとき
require Fatal error (致命的エラー) を出して スクリプトが即終了 絶対必要なファイル(なければ実行不能な処理) 必須ファイル

どちらも実行時に指定したファイルを読み込んで実行する機能です。

エラー発生時の挙動が異なります。

include_onceとrequire_onceは、
すでに読み込まれているファイルは再度読み込みません(多重定義防止)。

includeで外部ファイルを読み込む

以下は、test1.phpがtest2.phpファイルをincludeで読み込むサンプルです。

test1.php

<?php

include "test2.php";

print "文字を表示"; //文字を表示

test2.php

<?php

$name = 'suzuki';

print($name . "です"); //suzukiです

文字列が出力されます。

test1.phpの3行目のtest2.phpが存在しない場合、結果は以下になります。

warningになりますが後続の処理は続きます。

include_onceの場合

include_onceは、1度読み込んだファイルは、再度読み込みません。
ファイルがない場合は、includeと同じくwarningになります。

requireで外部ファイルを読み込む

以下は、test1.phpがtest2.phpファイルをrequireで読み込むサンプルです。

test1.php

<?php

require "test2.php";

print "文字を表示"; //文字を表示

test2.php

<?php

$name = 'suzuki';

print($name . "です"); //suzukiです

文字列が出力されます。

test1.phpの3行目のtest2.phpが存在しない場合、結果は以下になります。

指定の外部ファイルがないためFatal errorになり、後続の処理はストップします。printでの文字出力はされていません。

require_onceの場合

require_onceは、1度読み込んだファイルは、再度読み込みません。
ファイルがない場合は、requireと同じくFatal errorになりスクリプトは終了します。

関連の記事

PHP フォルダ/ファイルの一覧を取得(glob)
PHP ファイルの読み込みと書き込み(fgets/fwrite)

△上に戻る