本质上说命名空间就是一个容器,你可以将类、函数和变量存放在其中。在命令空间中,你可以无条件访问这些项。在命名空间外,必须导入或者引用命名空间,才能访问它所包含的项。----《深入PHP 面向对象、模式与实践》
个人理解就是为了解决,同区域类名重复的问题。
//$a=11;
namespace my;//必须位于第一行
class cc{
public function funs(){
echo "my fun";
}
}
namespace you;
class cc{
public function funs(){
echo "your fun";
}
}
$ob = new \you\cc();//调用方式
$ob->funs();
其中命名空间声明必须是文件中的第一条语句,否则会报错。