首页 > php教程 > php手册 > 正文

[namespace]PHP命名空间的动态访问 & 使用技巧

php中文网
发布: 2016-06-06 19:49:27
原创
1027人浏览过

----------------------------------------------------------------------------------------------- /* |----------------------------------------|一.动态访问命名空间的元素|@黑眼诗人 www.farwish.com|---------------------------------------- */ na

-----------------------------------------------------------------------------------------------

<span>/*</span><span>
|----------------------------------------
|一.动态访问命名空间的元素
|@黑眼诗人 <www.farwish.com>
|----------------------------------------
</span><span>*/</span><span>
namespace me\poet;

</span><span>function</span><span> test()
{
    </span><span>echo</span> '1111'<span>;
}

</span><span><span>$fun</span> = 'test';</span><span>//</span><span>不能这么用,最后$fun()无法动态调用到test():<strong>Fatal error</strong>: Call to undefined function test()</span>

<span>$fun</span> = '\me\poet\test';<span>//</span><span>正确

//$fun = 'me\poet\test';//正确</span>

<span>$fun</span><span>();<br />

</span><span>//</span><span>也就是说,动态调用必须是 限定名称 或 完全限定名称(概念参考:PHP命名空间的使用基础)</span>
登录后复制

 

<span>/*</span><span>
|-------------------------------------
|二.魔术常量 和 操作符
|-------------------------------------
</span><span>*/</span><span>
namespace me\poet;

</span><span>function</span><span> test()
{
    </span><span>echo</span> '1'<span>;
}

</span><span>echo</span> __NAMESPACE__; <span>//</span><span>魔术常量:命名空间的名称(输出 me\poet)

//namespace操作符:显式访问当前命名空间或子命名空间中的元素,等价于类中的self操作符</span>
\<span>me\poet\test();

namespace\test();

//上两行代码等价。</span>
登录后复制

 

<span>/*</span><span>
|-------------------------------------------
|三.别名、导入 和 全局空间(含多个例子)
|-------------------------------------------
</span><span>*/</span><span>
namespace ws\weichen\www;

</span><span>use</span> ws\weichen\www <span>as</span> poet;<span>//</span><span>定义别名poet

//use ws\weichen\www; //不加as,则取最后的作为别名(www)</span>

<span>function</span><span> demo()
{
    </span><span>echo</span> '1'<span>;
}

\ws\weichen\www\demo();

poet\demo();

</span><span>//</span><span>www\demo();    //不加as的情况,则这样调用

//以上三行代码效果一样。

//按规则(ws\weichen\www)命名的好处:若更换域名,只要把前缀名称改了就可以,不影响后面代码中别名www的使用。</span>

/*--------------------------------------------------------*/<br />
<span>/*</span><span> 导入 </span><span>*/<br /></span>
<span>include</span> 'hello.class.php'<span>;

</span><span>use</span><span> \ws\weichen\www;

</span><span>use</span><span> \Hello;
<br />/*--------------------------------------------------------*/<br />
</span><span>/*</span><span> 支持多个use语句 </span><span>*/<br /></span>
<span>use</span> \nihao\shijie <span>as</span> hello,<span> \ws\weichen\www;

/*--------------------------------------------------------*/<br />
</span><span>/*</span><span> 全局空间:反斜线调用 </span><span>*/</span><span>
<br />namespace A\B\C;
</span><span>//</span><span>这个函数是 A\B\C\fopen();</span>
<span>function</span> <span>fopen</span><span>()
{
    </span><span>$f</span> = \<span>fopen</span>('demo.txt');<span>//</span><span>调用全局fopen函数</span>
    <span>return</span> <span>$f</span><span>;
}</span>
登录后复制

 

Link: http://www.cnblogs.com/farwish/p/3913784.html

立即学习PHP免费学习笔记(深入)”;

@黑眼诗人 

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号