require、require_once - ファイルの取り込み
当ページのリンクには広告が含まれています。
PHPスクリプト内でファイルをインクルードする基本構文「require」「require_once」を紹介します。
require、require_once 構文
require、require_once を使えば、別のファイルに保存されているPHPスクリプトを取り込みむことができます。
require('ファイル名'); require_once('ファイル名')
- require は、同じファイルでも何度も取り込む
- require_once は、既に取り込まれたファイルは2回目以降は取り込まない(1度だけ取り込む)
require と include 構文
require(require_once) と include(include_once) 構文はファイルを取り込むという点は全く同じですが、インクルードファイルがない場合の挙動が異なります。
- require、require_once
インクルードファイルがない場合、致命的なエラー(Fatal error)として、処理を中断。
- include、include_once
インクルードファイルがない場合、警告(Warning)を出力し、処理を継続。
サンプルスクリプト
それでは require、require_onece の動きをサンプルスクリプトで確認してみましょう。
以下のスクリプトが記述された「in.php」というファイルを取り込んでみます。
<?php echo "require と require_once のサンプルスクリプトだよ。\n"; ?>
require
まずは、require のサンプルスクリプトです。
<?php // ファイルの取り込み require("in.php"); require("in.php"); require("in.php"); ?>
実行結果です。「in.php」を3回取り込んでいるので、以下のような結果になります。
require と require_once のサンプルスクリプトだよ。 require と require_once のサンプルスクリプトだよ。 require と require_once のサンプルスクリプトだよ。
インクルードファイルがない場合のサンプルスクリプトです。
<?php // インクルードファイルがない場合 require("in.php"); echo "ファイルないよ\n"; ?>
実行結果です。
Warning: require(in.php): failed to open stream: No such file or directory in /home/require.php on line 3 Fatal error: require(): Failed opening required 'in.php' (include_path='.:') in /home/karuma/require.php on line 3
このように致命的なエラー(Fatal error)として、処理を中断します。
require_once
次は require_once のサンプルスクリプトです。
<?php // ファイルの取り込み require_once("in.php"); require_once("in.php"); require_once("in.php"); ?>
実行結果です。
require と require_once のサンプルスクリプトだよ。
require と同じように3回「in.php」を取り込んでいますが、一度だけしか取り込まれないことがわかりますね。