PHP头条
热点:

php的spl_autoload标准库方法,phpspl_autoload


在php5中的spl_autoload方法相当于实现自己的__autoload

<?php
    function __autoload($classname){
        if(is_file($classname.'.php'){
            include $classname.'.php';
        } elseif(is_file($classname.'.inc'){
            include $classname.'.inc';
        }
    }

它会在注册目录下自动寻找与$classname同名的.php/.inc文件。当然,你也可以指定特定的文件,方法是注册扩展名

<?php
    spl_autoload_extensions('.php,.inc,.some');

那么怎样自动加载spl_autoload呢,方法是

<?php
    spl_autoload_register();

spl_autoload_register有一个$callback参数,如果不指定,它就会自动注册spl_autoload,为了能搜寻更多的自动加载目录,可以在这些代码前面设置自动加载目录

<?php
    set_include_path(get_include_path() . PATH_SEPARATOR . 'some/path' . DIRECTORY_SEPARATOR);

这些方法常用在php框架中。


急,各位高人解释一下PHP中的__autoload函数以及spl_autoload_register()函数,我到网上找资料都没看懂

__autoload 常用在自动加载类库处理
也就是网上说的 这种方法,根据类名,找出类文件,然后require_one
spl_autoload_register()

__autoload的最大缺陷是无法有多个autoload方法

好了, 想下下面的这个情景,你的项目引用了别人的一个项目,你的项目中有一个__autoload,别人的项目也有一个__autoload,这样两个__autoload就冲突了。解决的办法就是修改__autoload成为一个,这无疑是非常繁琐的。

因此我们急需使用一个autoload调用堆栈,这样spl的autoload系列函数就出现了。你可以使用spl_autoload_register注册多个自定义的autoload函数

如果你的PHP版本大于5.1的话,你就可以使用spl_autoload
 

教PHP中spl_autoload_register与spl_autoload_unregister 用法

这是一个PHP 类似自动加载的函数 比如 __autoload 但这个只能传入我们NEW的类名 如果想在NEW的时候调用自己定义的函数就可以用
spl_autoload_register
 

www.phpzy.comtrue/php/11833.htmlTechArticlephp的spl_autoload标准库方法,phpspl_autoload 在php5中的spl_autoload方法相当于实现自己的__autoload ? php function __autoload( $classname ){ if ( is_file ( $classname .'.php' ){ include $classname .'.php' ; } elseif ( is_f...

相关文章

相关频道:

PHP之友评论

今天推荐