首页 > 后端开发 > php教程 > PHP 中的autoload() 与spl_autoload_register()函数

PHP 中的autoload() 与spl_autoload_register()函数

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-20 12:47:53
原创
829 人浏览过

__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()函数。

实例:

<?php    class test    {        public function testLoad()        {               echo "这是test类中的testLoad方法";        }    }?><?php    spl_autoload_register(array("AutoLoad", "autoLoadCore"), '', true); //注册自动加载方法        //定义自定义加载函数    public static function autoLoadCore($classname)    {        $classPath =  "E://project/LiB/Action/".$className.".class.php";        if(!file_exists($classPath))        {            echo $classPath."路径不存在";        }        require_once($classPath);    }        $test = new test();    $test->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()函数,方能在使用此函数

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
Fatal error: 在PHP中调用未定义的函数gmp_sign()
来自于 1970-01-01 08:00:00
0
0
0
PHP中的setlocale()函数对中文无效吗?
来自于 1970-01-01 08:00:00
0
0
0
如何访问使用PHP函数存储的JS文件中的值
来自于 1970-01-01 08:00:00
0
0
0
从另一个文件的函数中提取php文件中的变量
来自于 1970-01-01 08:00:00
0
0
0
为普通人揭秘 PHP 中的递归函数
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板