ホームページ >バックエンド開発 >PHPチュートリアル >关于命名空间下php类加载的问题

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

WBOY
WBOYオリジナル
2016-06-06 20:09:13864ブラウズ

<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 までご連絡ください。