1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PHP】制御構造(require、include)について調べてみた

Posted at

はじめに

社内勉強会で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 文のどちらを使うべきですか?
以下の選択肢から正しいものを選んでください。

選択肢

  1. 常に require 文を使うべきである。
  2. 常に include 文を使うべきである。
  3. ファイルが存在しない場合にプログラムを停止させたい場合は require 文、停止させたくない場合は include 文を使うべきである。
  4. どちらを使っても同じである。
解答 3が正解

問題2

次のコードを実行した結果はどうなりますか?

以下の選択肢から正しいものを選んでください。

<?php
// file_not_exist.phpのファイルは存在しないとする
require 'file_not_exist.php';

echo 'この行は実行されますか?';
?>

選択肢

  1. この行は実行されますか? が出力される。
  2. 致命的なエラーが発生し、プログラムが停止する。
  3. 警告が発生するが、この行は実行されますか? が出力される。
  4. 何も出力されない。
解答 2が正解

参考サイト

最後に

GoQSystemでは一緒に働いてくれる仲間を募集中です!

ご興味がある方は以下リンクよりご確認ください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?