demo
namespace shipping
class courier
{
public $name;
public $price;
public fucntion loade($num) {
return $this->name= $num;
}
}
- 在另一个文件中,可以不再仅仅实例化一个courier类,如果这么做,php将在全局命名空间中寻找这个类,结果当然是找不到它。相反,引用这个类时必须使用它的全名:shpping\courier.
- 当在全局命名空间里将所有的类整齐地放入小命名空间时,另一个命名空间的代码中包含类时需要将一个引导命名空间运算符(namespace operater换句话说其实就是一个反斜杠)放在类名的前面:这表明php将从命名空间栈的顶部开始查找。因此,在任意命名空间中使用命名空间的中的类,可以这样做
-namespace fred
$new = new \shpping\courier();
- 要引用courier类,我们需要知道自己当前在哪个命名空间中,比如:
- 在shipping命名空间中,称为courier.
- 在全局命名空间中,称为 shipping/courier.
- 在其他命名空间中,需要从顶部开始,并像这样指代它:、shpping\courier.
- 可以在fred命名空间下声明另一个courier类,而且在代码中可以使用具有相同类名的两个对象而不报错,只是要在顶层命名空间中再次声明这两个相同的类。当你想使用两个(或更多)框架下的元素时不仅不会出现问题,而且这两个类都有一个类名Log.