PHPでは、includeとrequireを使って外部のPHPファイルを読み込めます。共通のヘッダーやフッター、設定ファイル、関数定義ファイルなどを分離して管理するために使います。
4つの読み込み方法
| 構文 | 失敗時 | 重複読み込み |
|---|---|---|
include | 警告(処理続行) | する |
require | 致命的エラー(停止) | する |
include_once | 警告(処理続行) | しない |
require_once | 致命的エラー(停止) | しない |
基本的な使い方
config.php
<?php
$db_host = "localhost";
$db_name = "myapp";
$site_name = "My Website";
?>
index.php
<?php
// 設定ファイルの読み込み(なければ致命的エラー)
require_once __DIR__ . '/config.php';
echo "サイト名: {$site_name}<br>";
echo "DB: {$db_host}/{$db_name}";
?>
実行結果
サイト名: My Website
DB: localhost/myapp
使い分けのポイント
- require_once — クラス定義、関数定義、設定ファイル(最もよく使う)
- require — テンプレートのパーツ(ヘッダー、フッターなど繰り返し読み込む場合)
- include — オプションのファイル(なくても動作に支障がない場合)
__DIR__を使ってパスを指定
require 'config.php'のように相対パスだけで指定すると、実行ディレクトリによってファイルが見つからない場合があります。require __DIR__ . '/config.php'のように__DIR__を基準にしましょう。
モダンPHPではオートローダーを使う
フレームワーク(Laravel、Symfonyなど)では、requireの代わりにComposerのオートローダーが自動的にクラスファイルを読み込みます。手動でrequireするのは設定ファイルやComposerのautoload.phpのみです。
まとめ
requireは必須ファイル(失敗時にエラー停止)、includeは任意ファイル(警告のみ)_once付きは重複読み込みを防ぐ(クラスや関数の定義に使う)- パスは
__DIR__を基準に指定するのがベストプラクティス