好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
什么是命名空间? 关闭 返回上一级  

什么是命名空间?
+ 查看更多

发布日期:2018-03-26 11:14
分类:PHP
浏览次数:92
  1. 什么是命名空间?
  2. PHP的命名空间是什么?
  3. 命名空间通常是指什么?

最好是带实例的、外行人都能看明白的答案。

答案:

命名空间之于函数和类就像作用域之于变量,他可以使您可以在同一程序的不同部分使用相同的函数名或类名而不产生命名冲突。
简而言之,可以把命名空间给看成是一个人的姓氏。如果有两个人叫做"John" ,你能用他们的姓来区分他们。
例如如下场景:
假如你写了一个应用程序用了一个叫做 output() 函数,你的 output() 函数将页面上的HTML代码发送给用户。
之后你的应用程序变得更大并且你想要增加特性。你添加了一个可以生成RSS种子的库。这个库也用了一个 output() 函数来输出最终的RSS种子。
当你调用 output() 函数时,PHP如何知道用你定义的 output() 函数还是库中的  output() 函数?除非你用了命名空间,否则PHP无法知道调用哪一个函数。
例如:
我们如何区分两个 output() 函数呢?很简单。我们可以把每个 output() 函数放到他自己的命名空间中。
如下所示:
namespace MyProject;

function output() {
    # Output HTML page
    echo 'HTML!';
}

namespace RSSLibrary;

function output(){
    # Output RSS feed
    echo 'RSS!';
}
当我们想调用不同的 output() 函数时,可以这样用: 
\MyProject\output(); \RSSLibrary\output();
或者,我们可以声明当前的处于哪个命名空间。然后,我们就可以用只调用这个命名空间中的 output() 函数了。
namespace MyProject;

output(); # Output HTML page
\RSSLibrary\output();
没有命名空间再怎么办?
如果我们没有命名空间,我们必须更改很多代码,像我们可以新建一个库或者是添加前缀来让我们的函数变得独一无二。
上一篇设置不过期的cookie
去掉正则表达式(PHP)下一篇
下一篇去掉正则表达式(PHP)

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号