发布日期:2018-03-26
什么是命名空间?+ 查看更多
什么是命名空间?
+ 查看更多
发布日期:2018-03-26 11:14
分类:PHP
浏览次数:108
- 什么是命名空间?
- PHP的命名空间是什么?
- 命名空间通常是指什么?
最好是带实例的、外行人都能看明白的答案。
答案:
命名空间之于函数和类就像作用域之于变量,他可以使您可以在同一程序的不同部分使用相同的函数名或类名而不产生命名冲突。
简而言之,可以把命名空间给看成是一个人的姓氏。如果有两个人叫做"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();没有命名空间再怎么办?
如果我们没有命名空间,我们必须更改很多代码,像我们可以新建一个库或者是添加前缀来让我们的函数变得独一无二。