PHP中命名空间的方法
【提要】本篇《PHP中命名空间的方法【1】》特别为需要方法编程学习的朋友收集整理的,仅供参考。内容如下:
PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。下面是小编为大家搜索整理的PHP中命名空间的方法,希望能给大家带来帮助!更多精彩内容请及时关注我们考试网!
PHP对于命名空间的支持,经历了一段艰难的旅程。幸运的是,PHP从5.3开始引入了命名空间。自从PHP引入了命名空间,PHP代码的适用结构也得到了大大的改善。许多编程语言早就有了命名空间的概念,相对于其他语言来说,PHP对于命名空间的支持,稍微有点晚了。不管如何,每一种新特性的引入都有其目的,和其他语言一样,PHP引入命名空间也主要是为了解决名字冲突的问题。
命名空间(namespace)的概念
代码如下:
当在字符串中使用命名空间名字的时候,一定不要忘了转义
可以将命名空间想象成一个抽屉,你可以在抽屉里放入铅笔、尺子、A4纸等,这些都是你自己的私有物品。在你的抽屉下面是别人的抽屉,别人也可以在抽屉里放入相同的物品。为了不拿错物品,你们决定在自己的抽屉上贴上标签,这样就可以清晰的看到某个物品是属于谁的了。
之前,开发者必须在类、函数和常量中添加下划线,用来使自己的代码独立其他于代码库。这相当于所有人都给自己的物品贴上标签之后,一起放入了一个更大的抽屉里。尽管这也是一种组织代码的方式,但是这种方式是非常低效的。
命名空间的到来就是为了解决这个问题。我们可以在不同的命名空间里声明相同的函数、类和常量,而不会造成名字上的冲突。本质上,命名空间无非是一种分等级标记PHP代码的方式。
正在使用命名空间
有一点需要注意的是,我们正在间接的使用命名空间。从PHP 5.3开始,所有在非用户定义的命名空间中的声明(类、函数、常量),都默认的属于全局命名空间。
全局命名空间中包含了所有PHP内部的定义,如echo()、mysqli_connect()和Exception类。由于全局命名空间并没有独立的标识名,所以它经常被成为全局空间(global space)。
定义命名空间
命名空间的定义必须是PHP文件的第一条语句。唯一允许在定义命名空间之前使用的语句是declare语句。
定义命名空间很简单,只需要使用关键字namespace即可。命名空间的名字需要遵循PHP文件中其他标识符的命名规则。
下面是定义一个命名空间的示例:
代码如下:
namespace MyNamespace{}
class Test{}
如果想定义一个属于全局空间的代码块,也是使用namespace关键字,但是后面不加命名空间的名字,如下:
代码如下:
namespace {}
class Test{}
我们甚至可以在一个文件中定义多个命名空间,如下:
代码如下:
namespace MyNamespace {}
namespace MySecondNamespace {}
namespace {}
我们也可以将一个命名空间分散在不同的文件中,文件包含的处理程序会自动合并他们。因此,限制大量的命名空间在同一个文件中定义是一个很好的'编程实践,就像我们通常单独为每个类定义一个单独的文件一样。
复制代码 代码如下:
有一点需要注意的是,包含命名空间代码块的{是可选的,可以用也可以不用。事实上,只要我们坚持在一个文件中只定义一个命名空间,那么我们就可以完全省略{,这样也可以使我们的代码看起来更加简洁。
子命名空间
命名空间可以遵循一个特定的层级,就像我们电脑文件系统中得目录一样。子命名空间对于将一个项目结构化尤其特别有用。例如,你的项目需要访问数据库,你可能会想将所有数据库相关的代码(如数据库异常处理等)放在同一个子目录下。
为了保持灵活性,将子命名空间放在子目录中是非常明智的做法。这会使你的代码结构更清晰,而且会使遵循PSR-0标准的autoloaders的使用变得更容易。
PHP使用反斜线作为命名空间的分隔符,有趣的是,PHP甚至考虑过使用笑脸:)作为命名空间的分隔符。
子命名空间定义示例:
代码如下:
namespace MyProjectDatabase
class Connection {}
可以使用尽可能多的子命名空间:
代码如下:
namespace MyProjectBlogAuthHandlerSocial;
class Twitter {}
有一点需要注意的是,PHP并不支持命名空间的嵌套定义,下面的代码会导致一个致命错误:Namespace declarations cannot be nested。
代码如下:
namespace MyProject {}
namespace Database {}
class Connection { }
 
-
word2010的相关操作介绍
设置word2010中图片的裁减在word2010中,用户可以随意对已经插入的图片或对象进行裁减。操作如下:1.请先选择要缩放或设置大小的图片,这时功能区会自动出现“图片工具”。2.在“图片工具”的“格式”选项卡的“大小”组中点击“裁减”,然后进行以下操作之一:●点击“...
-
厨房装修要注意哪些问题
厨房是家庭装修非常大的一个环节,关乎到水电燃气等各项安全问题,也关乎到以后的生活饮食的.健康问题,所以厨房装修显得尤为重要。今天小编为您介绍一下厨房装修需要注意哪些问题,为你家里装修厨房时多一个参考。一、厨房装修选材1、选材要防水厨房是我们每天洗菜做...
-
word安全模式修复方法
word安全模式修复今天启动Word时,弹出如下提示:“MicrosoftOfficeWord遇到问题需要关闭。我们对此引起的不便表示抱歉遇到问题需要关闭。您正在处理的信息有可能丢失。MicrosoftOfficeWord可以尝试为您恢复。恢复我的工作并重启MicrosoftOfficeWord。请将此问题...
-
互联网与实体经济的关联探讨
实体经济是指人通过思想使用工具在地球上创造的经济。互联网是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。那么这两者又有何关联呢?格力电器的董事长董明珠曾在演讲中说道:“没有实体经济的支撑,互联网就是死...