PHPのコードを別のPHPファイルに含めinclude_once()関数を使用しファイルを呼び出してみます。
include_once()関数は、include()と同じですが、唯一の変更点は、他のファイルからのスクリプトが既に存在する場合、それを再度含めることはなく、ファイルは一度だけ取り込まれます。
誤って同じファイル(関数やクラスのファイル)をinclude()やrequire()を、コード内に複数回含め取り込む場合、競合やエラーが発生する可能性があります。このような状況を防ぐために、include_once()関数を使用します。
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■PHPでinclude_once()関数を使用し別のPHPファイルを呼び出す
では、PHPでinclude_once()関数を使用し別のPHPファイルを呼び出してみます。
■コード(script_1.php)
<?php
include_once("C:/wamp64/www/project/script_2.php");
include_once("C:/wamp64/www/project/script_2.php");
?>
■コード(script_2.php)
<?php
echo "こんにちは"."<br>";
echo "よい天気ですね"."<br>";
?>
今回は、script_2.phpというファイルを作成し、include_once()関数を使用し、このファイルを別のPHP(script_1.php)から呼び出してみます。
なお、script_2.phpというファイルの中身には、echo文で文字列を出力するという処理を記述しています。
■実行
では、このスクリプトを「script_1.php」という名前で保存し、実行させてみます。
実行させてみると、script_2.phpというファイルの中身が取り込まれ、echo文で文字列を出力されました。
こんにちは
よい天気ですね
こんにちは
よい天気ですね
出力されましたが、本来であればinclude_once()関数を2回使用しているので、上記のようにscript_2.phpというファイルの中身が2回取り込まれ、echo文で出力される文字列は4回になるはずですが、2番目は取り込まれず無視され、echo文で出力される文字列は2回のみとなります。
■include()を複数回使用した場合
では、次にinclude()とinclude_once()関数の違いを理解するために、include()を複数回使用してみます。
■コード(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)のinclude_once()関数の部分をinclude()に変更します。
■実行
では、このスクリプトを「script_3.php」という名前で保存し、実行させてみます。
実行させてみると、include()関数を使用したことで、include_once()関数とは異なり、script_2.phpというファイルが2回取り込まれ、echo文での文字列の出力も4回となりました。
コメント