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

PHPのコードを別のPHPファイルに含めrequire()を使用しファイルを呼び出してみます。

require()を使用して、PHPファイルに含まれるコードを別のPHPファイルに含めることができます。なお、require()はinclude()と同じように動作します。

ちなみに、require()は、致命的なエラーが発生し、スクリプトの実行を停止させます。これがinclude()との違いでもあります。

■基本的な構文

require("path/to/filename(ファイルパス,ファイル名)"); もしくは require "path/filename.php(ファイルパス,ファイル名)";

require()を使用する際には、括弧を省略することができます。

■環境

・Windows10

・WampServer Version 3.2.3 64bit

・PHP Version 7.3.21

■PHPでrequire()を使用し別のPHPファイルを呼び出す

では、PHPでrequire()を使用し別のPHPファイルを呼び出してみます。

■コード(script_test_2.php)

<html>
<head>
<?php require "C:/wamp64/www/project/test_script_1.php";?>
</head>
<body>
<h1>require() function Example</h1>
</body>
<html>

■コード(test_script_1.php)

<?php
echo '<meta charset="UTF-8">';
?>

今回は、test_script_1.phpというファイルを作成し、include()を使用し、このファイルを別のPHP(script_test_2.php)から呼び出してみます。

なお、test_script_1.phpというファイルの中身には、echo文で文字列(メタタグ)を出力するという処理を記述しています。

■実行

では、このスクリプトを「script_test_2.php」という名前で保存し、実行させてみます。

実行してみると、エラーなどは表示されることなく、PHPのファイルが表示されます。

次にrequire()を使用し別のPHPファイルを呼び出すことができているのか、ソースを表示してみます。表示してみると、test_script_1.phpというPHPのファイルの中身が出力されていることが確認できました。

■呼び出すPHPのファイルが存在しない場合

では、次に実験として呼び出すPHPのファイルが存在しない場合はどうなるのでしょうか。今回作成したtest_script_1.phpというファイルを削除して、script_test_2.phpを実行させてみます。

実行してみると、下記のエラー(Fatal error)と警告(Warning)が表示されました。

Warning: require(C:/wamp64/www/project/test_script_1.php): failed to open stream: No such file or directory in C:\wamp64\www\project\script_test_2.php on line 3(ストリームのオープンに失敗しました。そのようなファイルまたはディレクトリはありません)

Fatal error: require(): Failed opening required ‘C:/wamp64/www/project/test_script_1.php’ (include_path=’.;C:\php\pear’) in C:\wamp64\www\project\script_test_2.php on line 3(require()を使用したが、ファイルを開くのに失敗)

このようなエラー(Fatal error)と警告(Warning)が表示されて、script_test_2.php内に記述した内容は一切表示されません。

include()を使用し、呼び出すPHPのファイルが存在しない場合

Warning: include(C:/wamp64/www/project/test_1.php): failed to open stream: No such file or directory in C:\wamp64\www\project\script_test.php on line 6

Warning: include(): Failed opening ‘C:/wamp64/www/project/test_1.php’ for inclusion (include_path=’.;C:\php\pear’) in C:\wamp64\www\project\script_test.php on line 6

一方、これがinclude()を使用すると、上記のように警告(Warning)は表示されますが、include()を記述したPHPファイルの中身は表示されます。つまり、警告は表示されますがスクリプトの実行は継続となっています。

コメント

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