spl_autoload_register()函数的作用
转自 http://my.oschina.net/alexskywinner/blog/92737
复习__autoload的时候,看到了spl_autoload_register()这个函数。但是一下子没有弄明白,通过查资料我算是弄明白了。
1.__autoload() —— 自动加载函数
我把很多个类文件以 类名.class.php的形式存放在class目录中,在class的同级目录中建立一个index.php。进入class目录里面分别建立class1.class.php、class2.class.php、class3.class.php文件,分别为里面的文件添加一下代码
04 | public function __construct(){ |
13 | public function __construct(){ |
22 | public function __construct(){ |
index.php文件中写入
02 | function __autoload( $classname ){ |
03 | $filename = "./class/" . $classname . ".class.php" ; |
04 | if ( is_file ( $filename )){ |
09 | $test1 = new class1(); |
11 | $test1 = new class2(); |
13 | $test1 = new class3(); |
我们成功的自动加载了class下面所有的要加载的类。
2.spl_autoload_register() —— 注册__autoload()函数
class里面的文件不做任何改变,只是简单的改写一下index.php
04 | function loadclass( $classname ){ |
05 | $filename = "./class/" . $classname . ".class.php" ; |
06 | if ( is_file ( $filename )){ |
11 | spl_autoload_register( "loadclass" ); |
13 | $test1 = new class1(); |
15 | $test1 = new class2(); |
17 | $test1 = new class3(); |
至于性能上面,我没有过多的发言权,发现很多框架里面都是用的spl_autoload_register(),既然大家都用自然有他的道理,我先留着这个疑问吧。