1.命名空间的声明
通过关键字namespace 声明命名空间
namespace 命名空间名称;
命名空间针对 函数、类名、常量 三部分起作用,并称之为元素。
常量声明:
define(名称,值);//(在类外边声明常量)与命名空间没有关系
const 名称 = 值;//也可以声明命名空间===与命名空间有关系
1>const 可以在类的内部声明常量信息(类常量)
2> const 也可以在累的外部声明常量(正常常量)
使用命名空间的时候 const 可以放到类的外部声明常量。
const 和define的区别:
前者针对命名空间发生影响,后者不会发生影响。
const可以声明多个同名称的常量
define 只能声明一个同名称的常量
2.访问命名空间的元素
//访问元素没有指明具体的命名空间,默认访问当前命名空间(上边紧挨着最近的命名空间)
//访问其他命名空间的元素 == classTwo命名空间为例
\classtwo\方法();
3.子级(多级)空间
//命名空间可以让我们存放许多元素(函数、类、常量),
//有事元素较多时,为了方便管理,可以对元素进行分门别类的存储,
//也就是说命名空间可以设置为多级空间。多级空间的最后一级空间称为 子级空间。
4.访问空间名称的3种方式
1>非限定名称
echo Animal::$name ;//就近访问上边与其接近的命名空间的Animal元素
类似php引入文件:include“common.php”;//相对路径
2> 限定名称
echo beijing\Animal::$name;//把当前空间和beijing空间联合获得Animal元素
类似php引入文件:include“common/confog/confog.php”;//相对路径
3> 完全限定名称
echo \beijing\Animal::$name;//访问beijing空间的animal元素
类似php引入文件:include "d:/web/confog.php";//绝对路径引入文件
5.命名空间引入
元素引入
//use 空间\空间\类元素;
//空间引入可以解决完全限定名称访问元素的繁琐性
//但是还需要通过 限定名称 扔然不够简洁
//我们可以直接引入类,就可以直接把这个类引入到当前空间,使用的时候就可以通过非限定名称 方式访问,非常便捷。
//(只能做“类元素”引入,函数和常量不可以哦)
==================================================================================================
为了防止类名称的冲突,可以使用别名
use beijing\app\Student as NewClassName;