关于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 

不这样做就意味着无法访问到包含错误消息的全局异常类。

广告
将在 10 秒后关闭
bannerAds