はじめに
社内勉強会でPHPの制御構造(require、include)について発表したので、資料を共有します。
できること
ファイルの読み込み
種類
require
include
require_once
include_once
それぞれの違い
require | include | require_once | include_once | |
---|---|---|---|---|
ファイル読み込みに失敗した場合 | 致命的なエラーでスクリプト停止 | 警告表示するがスクリプトの実行は継続 | 致命的なエラーでスクリプト停止 | 警告表示するがスクリプトの実行は継続 |
用途 | 必須ファイルの読み込み (データベースの接続など) | 必須でないファイルや条件によって読み込む (HTMLを記述したファイル) | 必須ファイルの読み込み (データベースの接続など) | 必須でないファイルや条件によって読み込む (HTMLを記述したファイル) |
ファイル読み込み回数 | 同じファイルでも常に読み込む | 同じファイルでも常に読み込む | 同じファイルの読み込みは1度だけ | 同じファイルの読み込みは1度だけ |
requireとrequire_onceの使い分け
同じファイルを複数回読み込むと、関数やクラスの再定義エラーが発生する可能性がある。
require_once
を使用することで、このようなエラーを回避し、スクリプトの安定性を高めることができる。
→ファイルの重複読み込みによるエラーを避けたい場合require_once
を使用する
使用例
requireの例
// データベース接続情報を記述したファイル
require 'database.php';
includeの例
// ヘッダー部分のHTMLを記述したファイル
include 'header.php';
// 条件分岐で読み込むファイルを切り替える例
if ($page == 'home') {
include 'home.php';
} else {
include 'other.php';
}
require_onceの例
// データベース接続情報を記述したファイルを一度だけ読み込む
require_once 'database.php';
~~~~~~~~~~
長い処理
~~~~~~~~~~
// 同じファイルのため、再度読み込まない
require_once 'database.php';
クイズ
問題1
require
文と include
文のどちらを使うべきですか?
以下の選択肢から正しいものを選んでください。
選択肢
- 常に
require
文を使うべきである。 - 常に
include
文を使うべきである。 - ファイルが存在しない場合にプログラムを停止させたい場合は
require
文、停止させたくない場合はinclude
文を使うべきである。 - どちらを使っても同じである。
解答
3が正解問題2
次のコードを実行した結果はどうなりますか?
以下の選択肢から正しいものを選んでください。
<?php
// file_not_exist.phpのファイルは存在しないとする
require 'file_not_exist.php';
echo 'この行は実行されますか?';
?>
選択肢
-
この行は実行されますか?
が出力される。 - 致命的なエラーが発生し、プログラムが停止する。
- 警告が発生するが、
この行は実行されますか?
が出力される。 - 何も出力されない。
解答
2が正解参考サイト
最後に
GoQSystemでは一緒に働いてくれる仲間を募集中です!
ご興味がある方は以下リンクよりご確認ください。