PHPのコードを別のPHPファイルに含めrequire_once()関数を使用しファイルを呼び出してみます。
require_once()関数は、require()と同じですが、唯一の変更点は、ファイルがすでに読み込まれているかどうかをPHPが自動的にチェックします。すでに読み込まれている場合はそのファイルを無視し、読み込みを行いません。新しいファイルを読み込みます。
require()をコード内に複数回含め、ファイルを読み込む場合、競合やエラーが発生する可能性があります。このような状況を防ぐために、require_once()関数を使用します。
またrequire_once()関数はrequire()と同じで、読み込んだファイルが正常に動作しない場合は、致命的なエラーが発生し、スクリプトの実行を停止させます。
■基本的な構文
require_once("path/to/filename(ファイルパス,ファイル名)");
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■PHPでrequire_once()関数を使用し別のPHPファイルを呼び出す
では、PHPでrequire_once()関数を使用し別のPHPファイルを呼び出してみます。
■コード(script_1.php)
<?php
require_once("C:/wamp64/www/project/script_2.php");
require_once("C:/wamp64/www/project/script_2.php");
?>
■コード(script_2.php)
<?php
echo "こんにちは"."<br>";
echo "私の名前は田中です"."<br>";
?>
今回は、script_2.phpというファイルを作成し、require_once()関数を使用し、このファイルを別のPHP(script_1.php)から呼び出してみます。
なお、script_2.phpというファイルの中身には、echo文で文字列を出力するという処理を記述しています。
■実行
では、このスクリプトを「script_1.php」という名前で保存し、実行させてみます。
実行させてみると、script_2.phpというファイルの中身が取り込まれ、echo文で文字列を出力されました。
こんにちは
私の名前は田中ですこんにちは
私の名前は田中です
出力されましたが、本来であればrequire_once()関数を2回使用しているので、上記のようにscript_2.phpというファイルの中身が2回取り込まれ、echo文で出力される文字列は4回になるはずですが、require_once()関数の機能でscript_1.php内に記述した2番目は取り込まれず無視され、echo文で出力される文字列は2回のみとなります。
■require()を複数回使用した場合
では、次にrequire()とrequire_once()関数の違いを理解するために、require()を複数回使用してみます。
■コード(script_3.php)
<?php
include("C:/wamp64/www/project/script_2.php");
include("C:/wamp64/www/project/script_2.php");
?>
■コード(script_2.php)
<?php
echo "こんにちは"."<br>";
echo "私の名前は田中です"."<br>";
?>
先ほどのコード(script_1.php)のrequire_once()関数の部分をrequire()に変更します。
■実行
では、このスクリプトを「script_3.php」という名前で保存し、実行させてみます。
実行させてみると、require()を使用したことで、require_once()関数とは異なり、script_2.phpというファイルが2回取り込まれ、echo文での文字列の出力も4回となりました。
コメント