什么是命名空间
命名空间是在php5.3以后的版本引入的。命名空间是一个抽象概念,在编程中用于封装划分一组方法or类。主要用于解决名字冲突的问题。
- 命名空间的定义
- 命名空间的使用导入
命名空间的定义
命名空间中只能包含:类(包括接口,抽象类)、函数、常量这些。
常量属于全局空间。
注意namespace之前只能有delcare关键字语句。
//命名空间的定义
<?php
//主要使用关键字 namespace
//定义了一个my_space的命名空间
namespace my_space;
//此类person属于命名空间my_space
class person{
public function walk(){
echo "走路中";
}
}
//定义子命名空间
namespace my_space\my_sub_space
/*
如果这样去写会被解释为 my_space\my_sub_space\my_space\person
因为这是相对路径的写法
class alien extends my_space\person
*/
//这个才是绝对路径的写法
class alien extends \my_space\person{
public function walk(){
echo "外星人飞行中";
}
}
//定义了一个全局的命名空间
//不建议在一个文件中定义多个命名空间
namespace {
define('CURRENT_SPACE','global');
}
命名空间的使用导入
<?php
//给my_space定义了一个别名 another_spacename
use my_space as another_spacename;
//my_sub_space相当于 \my_space\my_sub_space
use my_space\my_sub_space;
//导入类名
use test_space\classname;
//导入函数
use function test_space\fucname;
//导入常量
use const test_space\const_var;
//导入全局类
use global_classname;
$p1 = new person();
$p1->walk();
$a1 = new my_sub_space\alien();
$a1->walk();
网友评论