大変、お世話になります。
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ファイルが呼び出される、という理解で大丈夫でしょうか?
なんとなくは理解できているのですが、明確には理解できてないので、確認の質問のような感じにもなりますが、教えて頂けましたら幸いです。
宜しくお願い致します。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?