使用use关键字调用用命名空间更快捷, 例子中myTest2命名空间下使用use引用myTest1;调用类Demo时,设置别名代替调用
//命名空间myTest1
namespace myTest1;
header('content-type:text/html;charset=utf-8');
const NAME='小明';
function show(){
return '我是'.NAME;
}
class Demo{
private $name='小红';
public function __get($name){
return $this->$name;
}
public function __set($name,$value){
return $this->$name=$value;
}
}
//命名空间myTest2
namespace myTest2;
//使用use 关键字引用myTest1,
use myTest1;
//use引用myTest1的Demo类,用as设置别名调用
use myTest1\Demo as m1Demo;
const NAME='大明';
function show(){
return '我是'.NAME;
}
class Demo{
private $name='大红';
public function __get($name){
return $this->$name;
}
public function __set($name,$value){
return $this->$name=$value;
}
}
//使用use后,myTest1前可以去掉反斜线
echo myTest1\NAME;//小明
echo myTest1\show();//我是小明
//实例化类的时候可以用as设置的别名
$demo=new m1Demo();
echo $demo->name;//小红
echo $demo->name='small red';//small red
命名空间层级调用,myTest2设置为myTest1空间下的层级
//命名空间myTest1
namespace myTest1;
//use 引用myTest2的Demo1,先写上myTest1,层级防止写错
use myTest1\myTest2\Demo1;
const NAME='小明';
function show(){
return '我是'.NAME;
}
class Demo{
private $name='小红';
public function __get($name){
return $this->$name;
}
public function __set($name,$value){
return $this->$name=$value;
}
}
echo Demo1::CITY;//郑州
//命名空间myTest1下的myTest2
namespace myTest1\myTest2;
class Demo1{
const CITY='郑州';
}