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

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

コメント

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