大変、お世話になります。
spl_autoload_register(function ($class) {
$fileName = sprintf(__DIR__ . '/%s.php', $class);
if (file_exists($fileName)) {
require($fileName);
} else {
echo 'File not found: ' . $fileName;
exit;
}
});
こちらですが、spl_autoload_registerは「new をしたときにそのクラスが読み込まれていなかったら呼ばれる関数」との事ですが、クラスを呼び出すために、その該当のPHPファイルもrequireされる、ということでしょうか?
ということは、spl_autoload_registerで読み込むのは、クラス専用のPHPファイルであり、クラスのないPHPファイルは、spl_autoload_registerは使えず、通常のrequireやincludeを使わなければいけない、ということでしょうか?
複数のクラスがあるPHPファイルの場合(例えば、(1)と(2)のクラスがあるとして)は、(1)がnewされた時には、そのクラスを呼び出すためにそのPHPファイルが呼び出され、別で(2)がnewされた時には、そのクラスを呼び出すために、別でそのPHPファイルが呼び出される、ということでしょうか?
あるいは、「newをしたときにそのクラスが読み込まれていなかったら呼ばれる関数」ということは、(1)がnewされた時にそのPHPファイルは呼び出されているので、(2)がnewされる時には、既にそのPHPファイルは読み込まれているということで、新たに読み込む作業は発生しないのでしょうか?
newされなかったら、クラスがあるPHPファイルでも、そのPHPファイルは呼び出されない、ということでしょうか?
newした時に、自動的に、そのクラスのあるPHPファイルが呼び出される、という理解で大丈夫でしょうか?
なんとなくは理解できているのですが、明確には理解できてないので、確認の質問のような感じにもなりますが、教えて頂けましたら幸いです。
宜しくお願い致します。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?