Skip to content

PHPの include と require の違いについて

Posted on:2020年2月25日 at 00:00

PHPで外部モジュールを読み込む際に利用する include, require の違いです。

include と require の使い分けまとめ

指定したモジュールが存在しない場合の挙動が異なります。

外部モジュールを読み込んだ後の処理が、外部モジュールに依存しているかどうかによって使い分けましょう。

依存していない場合は include、依存している場合は require です。 基本的にはrequireでいいかと思います。

include と require の実際の挙動を検証してみる

以下のコードを実行して、実際の挙動を確認してみます。

<?php

include('foo');
require('bar');
echo 'Hello';
$ php index.php
Warning: include(foo): failed to open stream: No such file or directory in /Users/shootacean/github.com/shootacean/sandbox/php/include-require/index.php on line 3

Warning: include(): Failed opening 'foo' for inclusion (include_path='.:') in /Users/shootacean/github.com/shootacean/sandbox/php/include-require/index.php on line 3

Warning: require(bar): failed to open stream: No such file or directory in /Users/shootacean/github.com/shootacean/sandbox/php/include-require/index.php on line 5

Fatal error: require(): Failed opening required 'bar' (include_path='.:') in /Users/shootacean/github.com/shootacean/sandbox/php/include-require/index.php on line 5

ビジネスロジックのコアな部分の外部モジュールを利用する際などには、
requireを利用することでモジュール読み込み時点で致命的なエラーに気づくことができます。

ビュー層などの致命的な問題にならない箇所では include でいいかと思います。

以上、PHPの includerequire の挙動の違いについてでした。