PHPのコードを別のPHPファイルに含めrequire_once()関数を使用しファイルを呼び出す

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回となりました。

コメント

タイトルとURLをコピーしました