面向对象第八天----命名空间

命名空间 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 名称解析规则

posted @ 2016-05-22 16:13  隔壁家王叔叔  阅读(206)  评论(0编辑  收藏  举报