autoloadについて分からない

2020年4月5日
ユーザー

下記コードのautoloadでなぜ、クラスを読み込むことができるのか、またその中の条件分岐で行なっていることが分からなかったため、ご質問させていただきました。

spl_autoload_register(function($class) {

この場合、変数classには、未定義だったクラス名が入るということですが、このレッスンでのコードの場合、変数classには何が格納されているのでしょうか?

また、複数のクラスが未定義だった場合も同様に複数の値がこの変数名classに代入されるのでしょうか?
その場合、このコードでは、想定しない挙動となってしまうのではないでしょうか?

参考にしたレッスン
参考にした記事: PHP Documetation

該当するコード

spl_autoload_register(function($class) {
  $prefix = 'MyApp\\';
  if (strpos($class, $prefix) === 0) {
    $className = substr($class, strlen($prefix));
    $classFilePath = __DIR__ . '/../lib/' . str_replace('\\', '/', $className) . '.php';
    if (file_exists($classFilePath)) {
      require $classFilePath;
    }
  }
});

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(1)