关于命名空间下php类加载的问题

WBOY
Release: 2016-06-06 20:09:13
Original
835 people have browsed it

<code><?php namespace A;
use B\D, C\E as F;
new B();    // 创建命名空间 "A" 中定义的类 "B" 的一个对象
            // 如果未找到,则尝试自动装载类 "A\B"</code></code>
Copy after login
Copy after login

问一下大家自动装载是自动加载的意思吗,就是会调用spl_autoload_register()之类的函数。

回复内容:

<code><?php namespace A;
use B\D, C\E as F;
new B();    // 创建命名空间 "A" 中定义的类 "B" 的一个对象
            // 如果未找到,则尝试自动装载类 "A\B"</code></code>
Copy after login
Copy after login

问一下大家自动装载是自动加载的意思吗,就是会调用spl_autoload_register()之类的函数。

这里的自动装载应该就是自动加载的意思。 但是spl_autoload_register并不是在new B()的时间才调用的 -- 而应该是之前就已经调用了的。new B()的时候自动加载只是按照先前注册的顺序调用通过spl_autoload_register注册的自动加载器。

比如,先前有这样注册过两个自动加载器:

<code class="php">spl_autoload_register(foo);
spl_autoload_register(bar);</code>
Copy after login

那么在new B()的时候会先调用foo后调用bar...

更多关于spl_autoload_register的信息请参考: http://php.net/manual/zh/function.spl-autoload-register.php

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template