关于PHP命名空间
请记下在version5.4及之后可用的命名空间。
namespace A;
class A{
public static function xxx(){}
}
namespace B;
class A{
public static function yyy(){}
}
在这种情况下,可以称为namespaceA的A类和namespaceB的A类。
在调用时需要使用use关键字。
use A\A
在这种情况下,当以以下方式调用A类时,表示引用的是命名空间A中的A类。
use A\B
通过这样做,相当于调用了命名空间A中的B类。
如果使用别名调用,那么当在下面这样写C::xxx();时,实际上是引用了namespaceA的A类。
use A\A as C
C::xxx();
//A::xxx();と同義
使用命名空间时需要意识到是使用全局类还是该命名空间内的类。
例如,下面的情况会引发错误。
namespace A
try{
//エラー構文
}catch(Exception $e){
echo $e->getMessage();
}
因为在这里,所提到的Exception类是指在namespaceA内部的类。
\Exception
不这样做就意味着无法访问到包含错误消息的全局异常类。