__autoload() 类文件自动加载函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__autoload() 类文件自动加载函数相关的知识,希望对你有一定的参考价值。

 

这个魔术方法是用来自动加载程序所用到类文件的php源文件,这样就避免了我们一个一个自动去require或者include了,这个函数会在试图使用尚未被定义的类时自动调用。通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类,但是我最近看过一篇文章,上面说__autoload()的效率不是很高。以下是示例代码:

 

 1 <?php
 2 功能:在当前页使用类时自动加载该类的文件
 3 参数$className  为类的名称 可自定义
 4 
 5 */
 6 
 7 function __autoload($className){
 8 
 9 $className=strtolower($className);//最好加上这一步,因为类首字母大写,某些系统区分文件名的大小写
10 
11 require("$className.class.php");//加载类文件  One.class.php Two.class.php与本文件在同一目录下
12 
13 echo ‘------------------------------<br>‘;//作为调用时的标记来测试
14 
15 }
16 
17 //以下两个类均未在本文件中定义
18 
19 $o=new One();//使用One类,对其初始化
20 
21 $t=new Two();//使用Two类,对其初始化
22 
23 ?>

 注意这个函数如果需要正常加载,需要将文件名设置成类名(推荐小写).class.php等类名和文件名有某种关联才可以,另外如果这个函数出现异常不能被Catch捕获,将会显示Fatal Error

以上是关于__autoload() 类文件自动加载函数的主要内容,如果未能解决你的问题,请参考以下文章

1php----自动加载类 __autoload()函数

php中自动加载类_autoload()和spl_autoload_register()实例详解

__autoload()

类自动加载方法详解

构建自己的PHP框架之自动加载类中详解spl_autoload_register()函数

php命名空间+spl_autoload_register实现类的自动加载