【PHP】includeとinclude_onceによる外部ファイル読み込み
includeとは
`include` は、PHPスクリプト内で外部ファイルを読み込むための関数です。 読み込まれたファイルの内容は、その場所に直接埋め込まれるように処理されます。
// example.php
echo "これはexample.phpの内容です。";
// main.php
include 'example.php';
echo "main.phpの内容です。";
実行結果:
これはexample.phpの内容です。 main.phpの内容です。
include_onceとは
`include_once` は `include` と同じく外部ファイルを読み込む関数ですが、 すでに読み込まれた場合は再度読み込まれません。
// example.php
echo "example.phpが読み込まれました。";
// main.php
include_once 'example.php';
include_once 'example.php'; // 2回目は無視される
実行結果:
example.phpが読み込まれました。
includeとrequireの違い
`require` は `include` と同じくファイルを読み込みますが、エラー時の動作が異なります。 `include` はエラーが発生してもスクリプトの実行を続行しますが、`require` は即座にスクリプトを停止します。
// include の場合
include 'not_exist.php'; // 警告が出るがスクリプトは続行
echo "この行は実行される。";
// require の場合
require 'not_exist.php'; // エラーが発生しスクリプトが停止
echo "この行は実行されない。";
基本的な使い方
ヘッダーやフッターなど、共通のレイアウトを読み込む際に使用できます。
// header.php
echo "<header>これはヘッダーです</header>";
// footer.php
echo "<footer>これはフッターです</footer>";
// index.php
include 'header.php';
echo "<main>これはメインコンテンツです</main>";
include 'footer.php';
実行結果:
これはヘッダーです これはメインコンテンツです
エラーハンドリング
`include` のエラーを抑制するには `@` 演算子を使います。ただし、エラーハンドリングを適切に行うべきです。
// エラーを抑制
@include 'not_exist.php';
echo "エラーを抑制してもこの行は実行される。";
パスの指定方法
ファイルのパスは絶対パスまたは相対パスで指定できます。
// 相対パス
include 'config/config.php';
// 絶対パス
include '/var/www/html/config/config.php';
// __DIR__ を使用
include __DIR__ . '/config/config.php';
実践的な使い方
動的にファイルを読み込むことも可能です。
// settings.php
$theme = 'dark';
// main.php
$theme = 'light';
include "themes/{$theme}.php"; // light.php or dark.php を読み込む
このように、PHPの `include` や `include_once` を適切に使うことで、効率的にコードを再利用し、管理しやすくできます。