PHP7.4.1におけるinclude文やrequire文を使った外部ファイルの読み込みについて。
今回は「①読み込まれるファイル」と「②①を読み込むファイル」の2つのファイルを使います。
①読み込まれるファイル(include.php)
②①を読み込むファイル(sample.php)
今回はinclude.phpの中にあるaaa関数をsample.phpで使ってみよう、という趣旨でやっていきます。
外部ファイルの読み込みには require か include を使います。
sample.phpにrequire文かinclude文を使ってinclude.phpを読み込むことで、sample.phpでaaa関数を実行して返り値を得ることができます。
require文およびinclude文による外部ファイル読み込みの定形は以下のとおりです。
require '読み込みたいPHPファイル名';
require('読み込みたいPHPファイル名');
include '読み込みたいPHPファイル名';
include('読み込みたいPHPファイル名');
require_once '読み込みたいPHPファイル名';
require_once('読み込みたいPHPファイル名');
include_once '読み込みたいPHPファイル名';
include_once('読み込みたいPHPファイル名');
requireとincludeともに、パレンティス(丸括弧)はあってもなくてもどっちでもいいです。
_onceがあるかどうかの違いは、_onceがあれば指定したファイル名がすでに読み込んでいる同一ファイルだった場合はその処理をスルーするという処理になることです。
例えば上記のsample.phpでは、include.phpを4回も読み込んでいます。
これは、もし2つ目以降の読み込みに_onceがついてなかったら、問答無用でFatal Errorが出てスクリプトが強制終了します。
PHPでは同じファイルを重複して読み込んだ場合、Fatal Errorが出るようになっています。
_onceを付けているとこのような意図せぬ重複に適切に対応することができるので、とても便利です。
require文とinclude文の違いについて。
require文とinclude文は、外部ファイルを読み込むという処理についてはまったく同じです。
両者の違いは、指定したPHPが存在しなかった場合に現れます。
require文の場合は、指定したファイルが存在しなければ、Worningを吐いた直後にFatal Errorを出してスクリプトを強制終了してきます。
しかしinclude文の場合は、指定したファイルが存在しなければ、Worningを吐いたあとにそのまま下行のスクリプトの処理を継続してくれます。
以上です。