命名空间 namespace php5.3
1.1 命名空间概述
这个原理应用到程序设计领域就是命名空间的概念。
解决的问题:
1.用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
1.2 定义命名空间
格式:
namespace 空间名
注意:
① namespace 前不能任何输出 包括header
② 如果之前说过的系统冲突问题 优先使用自己namespace中的类函数常量
③ 引入的文件与本名明空间无关,必须用访问路径连接 且没有命名空间的类函数常量默认在 根空间下
1.3 定义子命名空间
namespace lamp\php
注意:路径可以为 相对和绝对 但是不能上一程 ../
1.4 在同一个文件中定义多个命名空间
namespace A;
namespace B;
或者
namespace A{
}
namespace B{
}
1.5 使用命名空间
非限定名称 demo();
限定名称 php\demo();
完全限定名称 \lamp\php\demo();
1.6 命名空间和动态语言特性
常量 函数 类
使用动态语言特新时 要使用完全限定名称
1.7 namespace关键字 和 __NAMESPACE__ 魔术常量
namespace 定义命名空间
namespace 指代当前命名空间名
__NAMESPACE__ 表示当前命名空间名
1.8 使用命名空间:别名/导入
use 别名 用 namespace 代替
use 命名空间 as 别名 // use lamp\php\oop as lp;
use 命名空间 默认把最后一级空间名当作别名
use 导入
use 空间名\类名;
1.9 全局空间
如果没有命名空间 则 默认在全局 根 空间下
1.10 使用命名空间:后备全局函数/常量
函数 常量 可以
类 不可以
1.11 名称解析规则