首頁 >後端開發 >php教程 >关于命名空间下php类加载的问题

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

WBOY
WBOY原創
2016-06-06 20:09:13865瀏覽

<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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn