質問: $dir . '/' . $class .'.php'; if(is_readable($file)){ require $file; return; } } } } ?> ``` 上記は、オートロードに関する処理をまとめたクラスである、「ClassLoader.php」になります。 「ClassLoader.php」の「register」メソッドでは、PHPにオートローダクラスを登録する処理、そして、loadClassメソッドには、オートロードが実行された際にクラスファイルを読み込む処理となります。 お聞きしたい部分なのですが、他の個所につきましても、分からない部分は多いのですが、第一にお聞きしたい部分は、「register」メソッドの「spl_autoload_register」関数についてです。 PHPマニュアルを参照してみたのですが、良く意味が分かりませんでした... そして、第2に「registerDir」メソッド内についてです。メソッド内では、「$this->dirs[]」となっているのですがここの$thisはClassLoader内の「protected $dirs;」変数を指しているという理解で合っていますでしょうか? まだ分からない点があるのですが、ここの2点が解決されましたら他の個所も分かるようになる気がします... どなたか、ご助言頂ける方いらっしゃいましたら、幸いです。よろしくお願いいたします。
回答: > > 「register」メソッドの「spl_autoload_register」関数についてです。 > > > `spl_autoload_register`は、オートロードが必要になった際に指定された関数を呼び出すように登録する、という関数です(PHPマニュアル)。引数が配列になっていますが、関数(`callable`)を必要とする引数に`オブジェクト, メソッド名]`という配列を渡すと、「その`オブジェクト`の`メソッド`を呼び出す」という意味になります([PHPマニュアル)。 全体を通せば、「オートロード発生時に`$this->loadClass`を呼び出す」ということになります。 > > ここの$thisはClassLoader内の「protected $dirs;」変数を指しているという理解で合っていますでしょうか? > > > `$this`は`ClassLoader`インスタンスを指しています。`$this->dirs`が`protected $dirs;`と対応しています。