spl_autoload_register() と __autoload() について
両方の使用法を見てください:
//__autoload の使用法 __autoload($classname) { $filename = "./class/".$classname.".class.php"; if (is_file($filename)) { include $filename } }
spl_autoload_register() を使用する利点は、言葉では言い表せません: (1) オブジェクトを自動的にロードする方が便利で、多くのフレームワークがこれを実行します:
class ClassAutoloader { public function __construct() { spl_autoload_register(array($this, 'loader')) } private function loader($className) { echo 'ロードしようとしています ', $className, ' via ', __METHOD__, "() n"; include $className . '.php'; } }
(2) __autoload() 関数は 1 回しか存在できないことを知っておく必要があります。 もちろん、spl_autoload_register() は複数の関数を登録できます。
関数 a () { 'a.php' を含む } 関数 b () { 'b.php' を含む } spl_autoload_register('b');
(3) SPL 関数は豊富で、登録済み関数の登録を解除する spl_autoload_unregister() や、登録されているすべての関数を返す spl_autoload_functions() など、より多くの関数を提供します。