PHPのrequire・include で別ファイルを読み込む

📁 作成ファイル・保存場所

XAMPPがインストールされているhtdocs フォルダに以下のファイルを作成してください。

ファイル名内容
htdocs/php-basic/08.phpPHPとHTML
  • XAMPP(Apacheが起動していること)
  • XAMPPがインストールされているhtdocs フォルダに内に作成されていること

今回のテーマ

requirerequire_onceincludeinclude_once を使って、他ファイルを読み込む方法を学ぼう!

目的

  • 他の PHP ファイルを読み込む手段(require / include 系)を理解する
  • 読み込み失敗時の挙動(致命的エラー vs 警告)を理解する
  • *_once 系を使って、一度だけ読み込む仕組みを知ることで、二重読み込みを防ぐ意識を持つ

チェックポイント

  • require / include の違いが理解できているか?
  • _once 系を使うことで重複読み込みを防げるか?
  • 読み込み失敗時の挙動(停止する/続行する)がわかっているか?

requireを使ってファイルを別ける

以下のように、1つのファイルから、他のページでも共通部分である、header をheader.php。footerをfooter.php。関数部分をfunctions.phpにわけておきます。

header.php(ページ共通のヘッダー内容をまとめる)

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>共通ヘッダー</title>
</head>
<body>
<header>
  <h1>ヘッダー部分</h1>
</header>

footer.php(ページ共通のフッター内容をまとめる)

<footer>
  <p>© 2025 WebTraining</p>
</footer>
</body>
</html>

functions.php(共通の関数を定義して、再利用できるように)

<?php
function sayHeading($text) {
    echo "<h2>{$text}</h2>";
}
?>


index.php

<?php
// 共通パーツを読み込む
require 'header.php';
require_once 'functions.php';
include 'nonexistent.php'; // 存在しない場合に警告のみ
include_once 'functions.php'; // 2回目は読み込まない

sayHeading('別ファイル読み込みの例');
?>

<main>
  <p>これはメインコンテンツです。</p>
</main>

<?php require 'footer.php'; ?>



  • require 'header.php'; → ファイルが無い場合、エラーで処理停止。必須読み込みに適す。
  • require_once 'functions.php'; → 一度だけ読み込むため重複を避けられる。
  • include 'nonexistent.php'; → 存在しないと警告が出て処理は継続。読み込み失敗時の挙動を確認できる。
  • include_once 'functions.php'; → 二回目の読み込みはスキップされ、重複を防止。

4つの構文の違いまとめ

スクロールできます
構文ファイルが存在しない場合読み込み回数主な用途
require致命的エラー(処理が停止する)毎回読み込む絶対に必要なファイル(設定・ヘッダーなど)
require_once致命的エラー(処理が停止する)1回だけ(2回目以降は無視)関数定義・クラス定義ファイル(重複定義を防ぐ)
include警告(Warning)(処理は続行する)毎回読み込むあれば便利なファイル(任意のテンプレートなど)
include_once警告(Warning)(処理は続行する)1回だけ(2回目以降は無視)オプション的に使う関数定義・パーツファイル
  • require 系 → プログラムに必須なファイルを読み込むときに使う。失敗すると処理を止めるので安全性が高い。
  • include 系 → あれば読み込むが、無くても処理を続行する。動的に「ある場合だけ読み込む」処理に使える。
  • *_once → 同じファイルを二重に読み込んでしまうのを防ぐ。関数やクラスの重複定義によるエラー回避に必須。

PHP基礎トレーニング

実際に動作を試して、違いを体感してみましょう。

<?php
require 'header.php';

echo "<p>ファイル読み込みテスト</p>";

try {
    include 'missing.php';
} catch (Throwable $e) {
    echo "<p>include に失敗しました: {$e->getMessage()}</p>";
}

require_once 'functions.php';
require_once 'functions.php'; // 読み込みされないことを確認

sayHeading('テスト完了');

require 'footer.php';
?>
  • missing.php の読み込みで警告が出るが、処理は継続されることを確認。
  • functions.phprequire_once によって、二回目読み込みされないことを確認。
  • 動きをページに表示して、違いを見てみましょう。

表示確認の手順

下記のコード入力が終わったら、以下の手順で動作を確認してみましょう。

  1. XAMPP を起動
     「Apache」が起動していることを確認します。
  2. ブラウザを開く
     Google Chrome など、普段使っているブラウザを開きます。
  3. アドレスバーに入力
     次のURLを直接入力して Enter を押します
http://localhost/php-basic/
  1. 01.php をクリック
     フォルダ一覧の中に「02.php」というファイル名が見えたら、それをクリックしてください。
  2. ページが表示されれば成功!
     「PHP基礎学習のスタートです」や「ウェブトレーニングで頑張りましょう」などの文字が表示されていれば、PHPが正しく動いています。