PHP 中的autoload() 与spl_autoload_register()函数
程序员文章站
2022-05-25 22:38:51
...
__autoload()函数可以实现自动加载所需要的类
用法:
__autoload() 在实例化对象时,若没有引入相关的文件,就会自动调用这个方法来进行加载。
实例:
public function __autoload($className){ $actionPath ="E://project/LiB/Action/".$className.".class.php"; if(!file_exists($actionPath)) { echo $actionPath."路径不存在"; } require_once($actionPath);}
spl_autoload_register()函数
作用:注册自定义加载函数
比如在文件中定义一个 loadfile()作为自定义加载函数,但是至少声明或者定义这个函数后,在实例化对象时,程序并不会自动去运行loadfile()这个函数,而会自动运行__autoload()函数。而spl_autoload_register()函数就是让程序在实例化一个对象时组自动调用loadfile()函数。
实例:
testLoad();?>
结果: 输出:这是test类中的testLoad方法;
spl_autoload_register()有三个参数
第一个:array($classname,$method),是一个数组,数组有两个元素,第一个元素表示自动加载方法所在的类,第二个表示自动加载方法的函数名
第二个参数:表示无法成功注册时是否抛出异常,true/false
第三个参数:true/false,表示是否将函数注册到自动加载函数队列之首。
注意:1、spl_autoload_register()实际上创建了 autoload 函数的队列,按定义时的顺序逐个执行(至今我没有成功实现逐个执行的功能,请各位指点)
2、若使用spl_autoload_register()注册了新的自动加载函数,那么原有的__autoload()函数将失效,若需使用__autoload()函数,需要通过spl_autoload_register()再次注册__autoload()函数,方能在使用此函数
推荐阅读
-
PHP与MYSQL中UTF8编码的中文排序实例,_PHP教程
-
PHP中10个不常见却非常有用的函数_PHP教程
-
UCenter中的一个可逆加密函数authcode函数代码_php技巧
-
PHP中GD库的官方站文档中有显示ImageGifAnimBegin这个函数,为什么小弟我用在PHP中会提示undefined function
-
关于PHP函数声明与调用的一个小疑点
-
PHP中的浅复制与深复制的实例详解
-
php中的字符编码转换函数用法示例,php示例_PHP教程
-
php数组函数序列之array_pop() - 删除数组中的最后一个元素_PHP教程
-
php中两个**可以直接求一个数的n次方 为什么还要有pow()函数
-
ThinkPHP中公共函数路径和配置项路径的映射分析_PHP