Maison > php教程 > php手册 > le corps du texte

php的spl_autoload标准库方法,phpspl_autoload

WBOY
Libérer: 2016-06-13 09:29:47
original
990 Les gens l'ont consulté

php的spl_autoload标准库方法,phpspl_autoload

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

<?<span>php
    </span><span>function</span> __autoload(<span>$classname</span><span>){
        </span><span>if</span>(<span>is_file</span>(<span>$classname</span>.'.php'<span>){
            </span><span>include</span> <span>$classname</span>.'.php'<span>;
        } </span><span>elseif</span>(<span>is_file</span>(<span>$classname</span>.'.inc'<span>){
            </span><span>include</span> <span>$classname</span>.'.inc'<span>;
        }
    }</span>
Copier après la connexion

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

<?<span>php
    spl_autoload_extensions(</span>'.php,.inc,.some');
Copier après la connexion

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

<?<span>php
    spl_autoload_register();</span>
Copier après la connexion

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

<?<span>php
    </span><span>set_include_path</span>(<span>get_include_path</span>() . PATH_SEPARATOR . 'some/path' . DIRECTORY_SEPARATOR);
Copier après la connexion

这些方法常用在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
 

Étiquettes associées:
spl
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!