無料で作れるMyフォームクリエイター

`include` と `require` の違い

最終更新日: 2025年10月4日

PHPでサイトを構築する際、ヘッダーやフッター、関数定義ファイルなど、複数のページで共通して使う部分を別ファイルに切り出して管理することがよくあります。その際に使われるのが、外部ファイルを読み込むための `include` と `require` です。

共通点:外部ファイルを読み込む

どちらの命令も、指定したファイルをその場所に読み込んで実行するという基本的な機能は同じです。また、それぞれ末尾に `_once` を付けた `include_once` と `require_once` があり、これらは同じファイルが複数回読み込まれるのを防ぐために使われます。

相違点:エラー発生時の挙動

両者の唯一かつ最大の違いは、**指定したファイルが見つからなかった場合のエラーの深刻度**です。

  • `include`:警告(Warning)を出すが、処理は続行する
    ファイルがなくても、PHPは警告メッセージを出すだけで、その後のスクリプトの実行を続けようとします。例えば、表示がなくてもサイトの動作に致命的な影響がない広告バナーなどを読み込む際に使われることがあります。
  • `require`:致命的なエラー(Fatal Error)を出し、処理を中断する
    ファイルが見つからない場合、PHPはそこで致命的なエラーと判断し、スクリプトの実行を完全に停止します。これにより、予期せぬ動作やさらなるエラーの発生を防ぎます。

どちらを使うべきか?

結論から言うと、**ほとんどの場合は `require_once` を使うのが安全で確実**です。設定ファイル(`config.php`)や関数ファイル(`functions.php`)のように、そのファイルがないとプログラムが正常に動作しないことが明らかな場合は、`require` を使ってエラー発生時に処理を確実に停止させるべきです。Myフォームクリエイターでも、`require_once 'functions.php';` のように `require_once` を使用しています。

まとめ

「それがないと絶対に困るファイルは `require` で読み込む」と覚えましょう。`include` は、読み込めなくても処理を続けたいという限定的な状況以外では、あまり使う機会はありません。安全性を優先し、基本的には `require` または `require_once` を使うことをお勧めします。

Web制作者向け便利ツール