パーフェクトPHP第7章を学習しているのですが、分からない部分があった為、ご質問させて貰いました。
下記はオートロードに関する処理をまとめた、「ClassLoader.php」です
php
1<?php 2class ClassLoader 3{ 4 protected $dirs; 5 public function register() 6 { 7 spl_autoload_register(array($this,'loadClass')); 8 9 } 10 public function registerDir($dir) 11 { 12 $this->dir[] = $dir; 13 14 } 15 16 public function loadClass($class) 17 { 18 foreach($this->dirs as $dir){ 19 $file = $dir . '/' . $class . '.php'; 20 if(is_readable($file)){ 21 require $file; 22 return; 23 } 24 } 25 } 26}
下記は、ClassLoaderをオートロードに登録する為の「bootstrap.php」です。
php
1<?php 2require 'core/ClassLoader.php'; 3 4$loader = new ClassLoader(); 5$loader->registerDir(dirname(__FILE__) . '/core'); 6$loader->registerDir(dirname(__FILE__) . '/models'); 7$loader->register(); 8
上記の「bootstrap.php」の「$loader->register()」では、registerメソッドを呼び出していますが、結果的に、「spl_autoloader_register」によって、「loadClass」メソッドが呼び出されますが、ここの引数$classはどうなるのでしょうか?
通常、メソッドを呼び出す際は、仮引数が存在していた場合、loadClass('test')などのように実引数を指定するものと思いますが、「spl_autoload_register」で呼び出した場合は、引数はどうなるのでしょうか?
ご教示頂けましたら幸いです。
回答1件
あなたの回答
tips
プレビュー