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ファイルの中身は表示されます。つまり、警告は表示されますがスクリプトの実行は継続となっています。
コメント