php 命名空间
时间:2023-3-1 21:51 作者:wen 分类: PHP
<?php
//命名空间
//定义命名空间
namespace 关键字声明 **前面不能有任何输出
//定义命名空间
namespace wen\php
//全局空间
在函数前面加上一个反斜线(\),就是使用全局空间
//同一个文件定义多个空间
在实际编程实际中非常不建议在一个文件里定义多个空间
//使用命名空间
//非限定名称
在当前空间查找
//限定名称
限定名称类似于:相对路径
new xx\xx();
//完全限定名称
类似:绝对路径
new \xxx\xx\xx();
注意:如果在命名空间中使用类,只在当前空间查找并使用;函数,常量执行的机制;先在当前空间查找,如果没有找到则退而使用全局空间的函数,常量
//导入命名空间
导入只涉及空间之间的操作,而require只涉及代码的加载我们即使使用require,加载代码那么这些代码所属的空间不变
导入空间使用use关键字,后面跟需要导入的空间或成员
1.可以将整个命名空间导入到另一个空间;如果整体导入,我们通常会给导入的空间取个别名(用 as 取别名),如果没有起别名,会默认使用最后一个(反斜线(\))后面的名字作为别名.
use xxx;
2.可以单独导入类,函数,常量到另一个空间(php5.6之前的版本只能导入类,PHP5.6之后的版本可以单独导入函数,常量)
1.导入函数 use xxx\funcion;
2.导入常量 use xxx\ROOT;
**导入函数,产量到当前空间,如果有重复,就会被覆盖.
**use 导入空间是从全局开始导入的,所以可以不加反斜线(\)
//命名空间的动态语言特性
命名空间可以保存到变量中,这就体现了动态语言的特性
如果把命名空间保存到变量中的话,必须使用完全限定名称,由于限定名称和完全限定名称没有区别,因此其前导的反斜线是不必要的.
$className = xxx\xxx;
new $className;
?>
标签: PHP基础