码迷,mamicode.com
首页 > Web开发 > 详细

PHP命名空间

时间:2017-12-31 16:41:41      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:空间   auto   bsp   col   splay   文件   一个   div   图片   

景:通常用include包含文件的时候,包含的文件中包含同名的类(包括trait)、接口、函数、常量,比如下面的例子:

技术分享图片

运行C.php会出错,因为在同一个文件中包含了相同的类名的类

使用命名空间的意义:可以理解为--->使用类似文件系统分级的形式,在定义类或者函数的时候,指定该类或者该函数所在的文件目录即可

按照上面的理解,先假设有一个类名为Test的类在dir1目录下,另外一个类名也为Test的类在dir2目录下,然后我们在使用其中dir1下的Test类的时候,在类名前面要加上dir1,以dir1\Test的形式实例化;同样,如果要使用dir2下的Test类的时候,就在类名前加上dir2,以dir2\Test的形式实例化。

上面的dir1或dir2就是PHP中的命名空间,命名空间的层级结构(方便理解的话,可以理解为层级结构)使用反斜线(\),也就是windows下的文件系统的分隔符来分隔。

上面的例子代码如下:

技术分享图片

 

技术分享图片

这样运行C.php就不会出错了,因为两个同名的类存在不同的命名空间,所以不会产生冲突

 

到这里,其实命名空间的原理已经讲清楚了。但是每次实例画一个类的时候,都写那么一长串命名空间,比较麻烦,所以可以使用关键字use,在实例画一个类的之前,先使用use将这个类的完整命名空间及类型指明,然后就可以直接使用类名实例化对象了。比如下面的例子

技术分享图片

 

PHP命名空间

标签:空间   auto   bsp   col   splay   文件   一个   div   图片   

原文地址:https://www.cnblogs.com/-beyond/p/8157905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!