一般情况下,在一个php程序源代码文件或同一个请求中是不允许有两个以上相同名称的类名、常量名或者函数名的,这样的话,程序在运行的时候就会报错。但是,在很多实际情况下,我们是无法避免在同一个文件下有两个以上相同名称的类名、常量名或者函数名的。这种情况下就需要引入命名空间。
示例代码:
namespace appget1; function getUser(){ echo 'user1'; } namespace get2; function getUser(){ echo 'user2'; } getUser(); // 非限定名称访问方式 appget1getUser(); //完全限定名称访问方式,从根路径开始,类似绝对路径 // get2getUser(); //限定名称访问方式,不是从根路径开始,类似相对路径
命名空间的引入机制
1)空间的引入:关键字use,注意:当移入空间后,必须要用限定名称访问方式访问引入空间里面的函数(或类、常量),不能使用非限定名称方式访问,这样会访问到当前命名空间下的函数(或类、常量)。
2)空间类元素的引入:关键字use。注意:只能引入类,然后可以使用非限定名称访问。