[TOC] #### 1. 命名空间的访问分为三种模式 --- 非限定名称访问、限定名称访问、完全限定名称访问 **非限定名称访问** ``` var_dump();// 不加空间名前缀访问空间元素 ``` **限定名称访问** ``` \think\var_dump();// 加空间名前缀访问空间元素 ``` **完全限定名称访问** ``` \app\think\var_dump();//从根命名空间开始访问 ``` ``` <?php namespace app\think; function var_dump() { echo 'this is one data <br>'; } var_dump();//非限定名称访问 namespace app; think\var_dump();//限定名称访问 \app\think\var_dump();//完全限定名称访问 ``` #### 2. 通过 use 关键字访问空间元素 --- **use 语法规则** **使用 `as` 时空间元素名称则被新名称取代, 原名称不能用了, 故不能称之为起别名, 应该是起新名** use 引入空间元素是从根命名空间引入的, 也就是 `完全限定名称访问` ``` use [元素类型] [命名空间\]类名 [as 新名称]; ``` 空间元素都可以通过 use 引入, 但是对于不同类型的空间元素引入方式 ``` use 空间名称\类名;//引入类 use function 空间名称\函数名;//引入函数 use const 空间名称\常量名;//引入常量 ``` **使用示例** ``` use app\A; // 类 use const app\PI;//常量 use function app\var_dump;//函数 ``` **PHP7 开始支持使用 `{}` 一次引入多个相同命名空间下的多个空间元素 (PHP7之前需要使用多次 use)** ``` use app\{ A,//类 const PI,//常量 function var_dump,//函数 }; ``` #### 3. 系统默认的空间元素访问规则 --- 系统内置的函数、常量、类都属于全局空间 函数和类在空间内访问时系统会先在当前空间找, 找不到再去全局空间找; 而类不会去全局空间下找, 当前空间下类找不到时将抛出 `Fatal error`