0
1

More than 3 years have passed since last update.

【PHPの名前空間について】

Posted at

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クラスを呼び出したときはnamespaceAのAクラスのことを参照していることになる。

use A\B

こうすることで、namespaceAのBクラスを呼び出していることになる。

別名で呼び出す場合
use A\A as C
こうするとこれ以下で、C::xxx();としたとき、実施にはnamaspaceAのAクラスを参照していることになる。

use A\A as C
C::xxx(); 
//A::xxx();と同義

【namespaceを使う際はグローバルクラスなのかそのnamespace内のクラスなのかを意識する】
例えば、以下だとエラーになる。

namespace A
try{
    //エラー構文
}catch(Exception $e){
    echo $e->getMessage();
}

なぜなら、ここでいうExceptionクラスはnamespaceA内のものを指しているから。

\Exception 

こうしないとエラーメッセージの入ったグローバルなExceptionクラスにアクセスしていないことになる。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1