目的:避免引入过多的类,使用自动加载函数
__autoload():自动加载函数,当实例化一个未引入的类时自动触发
spl_autoload_register():不会像__autoload自动触发,通过调用spl_autoload_register(),它告诉PHP碰到没有定义的类就执行loadprint()
举个栗子
printit.class.php:
<?php class PRINTIT { function doPrint() { echo 'hello world'; } } ?>
使用__autoload()
<? function __autoload( $class ) { $file = $class . '.class.php'; if ( is_file($file) ) { require_once($file); } } $obj = new PRINTIT(); $obj->doPrint();?>
使用spl_autoload_register()
<? function loadprint( $class ) { $file = $class . '.class.php'; if (is_file($file)) { require_once($file); } } spl_autoload_register( 'loadprint' ); $obj = new PRINTIT(); $obj->doPrint();?>
注意事项:
spl_autoload_register(array('Base', 'autoload'))//调用Base类的静态方法autoload()