名前解決は、以下の規則に基づいて行います。
C::D::e() をコールすると、それが
      A::B::C::D::e() に変換されます。
     
    new C() が new A::B::C() に変換されます。
     
    new C() のコールは、次のように解決されます。
     
     new ::C() とする必要があります。
     
    new A::B::C() は、名前空間
      A::B のクラス C を指します。
     
    例1 名前解決の解説
<?php
namespace A;
// 関数コール
foo();      // まずは名前空間 "A" の関数 "foo" のコールを試み、
            // それがなければ内部関数 "foo" をコールします
::foo();    // グローバルスコープで定義されている関数 "foo" をコールします
// クラスの参照
new B();    // まずは名前空間 "A" で定義されているクラス "B" のオブジェクトの作成を試み、
            // それがなければ内部クラス "B" のオブジェクトを作成します
new ::B();  // グローバルスコープで定義されているクラス "B" のオブジェクトをします
// 他の名前空間の静的メソッド/関数
B::foo();   // まずは名前空間 "A::B" の関数 "foo" のコールを試み、
            // 次に内部クラス "B" のメソッド "foo" をコールします
::B::foo(); // まずは名前空間 "B" の関数 "foo" のコールを試み、
            // 次にグローバルスコープのクラス "B" のメソッド "foo" をコールします
// 現在の名前空間の静的メソッド/関数
A::foo();   // まずは名前空間 "A::A" の関数 "foo" のコールを試み、
            // 次に名前空間 "A" のクラス "A" のメソッド "foo"、
            // それから名前空間 "A" の関数 "foo"、
            // さらにその次に内部クラス "A" のメソッド "foo" という順になります
::A::foo(); // まずは名前空間 "A" の関数 "foo" のコールを試み、次に
            // グローバルスコープのクラス "A" のメソッド "foo" をコールします
?>
NPO法人の設立(東京・大阪) 東京や大阪などNPO法人を設立する場合の注意点等を紹介
不動産・賃貸・マンション 不動産・賃貸・マンションに関する用語集です。
堺市の入院・内科大阪の賃貸探し 大阪で賃貸を探している方は大阪ホームへ
東京の賃貸マンション 東京で賃貸を探すなら東京賃貸.orgへ