复习__autoload的时候,看到了spl_autoload_register()这个函数。但是一下子没有弄明白,通过查资料我算是弄明白了。
1.__autoload() —— 自动加载函数
我把很多个类文件以 类名.class.php的形式存放在class目录中,在class的同级目录中建立一个index.php。进入class目录里面分别建立class1.class.php、class2.class.php、class3.class.php文件,分别为里面的文件添加一下代码
<?php //class1.class.php中 class class1{ public function __construct(){ echo "class1"; } } ?> <?php //class2.class.php中 class class2{ public function __construct(){ echo "class2"; } } ?> <?php //class3.class.php中 class class3{ public function __construct(){ echo "class3"; } } ?>
index.php文件中写入
我们成功的自动加载了class下面所有的要加载的类。
2.spl_autoload_register() —— 注册__autoload()函数
class里面的文件不做任何改变,只是简单的改写一下index.php
1 <?php // 写一个loadclass函数 2 // loadclass函数不具备自动加载类的功能 3 function loadclass($classname){ 4 $filename = "./class/".$classname.".class.php"; 5 if(is_file($filename)){ 6 include $filename; 7 } 8 } // spl_autoload_register()函数让这个loadclass具备了自动加载类的功能 spl_autoload_register("loadclass"); 9 $test1 = new class1(); echo '<br/>'; $test1 = new class2(); echo '<br/>'; $test1 = new class3(); 10 ?>