spl_autoload_register
spl_autoload_register('定义的加载这些不存在的类文件的函数', true, true);
class AutoloadClass1{ public function __construct() { echo '你已经包含我这个类了'; } } //文件autoloadDemo.php文件 spl_autoload_register('myAutoLoad', true, true); function myAutoLoad($className){ echo $className; echo "我来加载这些类文件!\r\n"; require $class.'.php' } //当AutoloadClass1或者AutoloadClass1不存在时执行myAutoLoad这个函数 $objDemo = new AutoloadClass1(); $objDemo = new AutoloadClass1();
例子2
class AutoloadClass1{ public function __construct() { echo '你已经包含我AutoloadClass1这个类了'; } } spl_autoload_register(function ($class) { echo 888888; echo $class;//此参数为实例的不存在的这个类文件的类名 echo 888888; echo "我来加载这些类文件!\r\n"; //include $class . '.class.php'; }); $objDemo = new AutoloadClass1(); $objDemo = new AutoloadClass2();
例子3:
class AutoloadClass1{ public function __construct() { echo '你已经包含我AutoloadClass1这个类了'; } } class AutoLoadFile{ public static function loadClassLoader($class) { echo 888888; echo $class;//此参数为实例的不存在的这个类文件的类名 echo 888888; echo "我来加载这些类文件!\r\n";
// require $class.'.php' } public static function getLoader(){ spl_autoload_register(array('AutoLoadFile', 'loadClassLoader'), true, true); } } AutoLoadFile::getLoader(); $objDemo = new AutoloadClass1(); $objDemo = new AutoloadClass2(); //输出: // 你已经包含我AutoloadClass1这个类了 // 888888 // AutoloadClass2 // 888888 // 我来加载这些类文件! // Fatal error: Class 'AutoloadClass2' not found in D:\phpStudy\WWW\demotest\index.php on line 33