Home > Article > Backend Development > 关于命名空间下php类加载的问题
<code><?php namespace A; use B\D, C\E as F; new B(); // 创建命名空间 "A" 中定义的类 "B" 的一个对象 // 如果未找到,则尝试自动装载类 "A\B"</code></code>
问一下大家自动装载是自动加载的意思吗,就是会调用spl_autoload_register()之类的函数。
<code><?php namespace A; use B\D, C\E as F; new B(); // 创建命名空间 "A" 中定义的类 "B" 的一个对象 // 如果未找到,则尝试自动装载类 "A\B"</code></code>
问一下大家自动装载是自动加载的意思吗,就是会调用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>
那么在new B()
的时候会先调用foo
后调用bar
...
更多关于spl_autoload_register
的信息请参考: http://php.net/manual/zh/function.spl-autoload-register.php