名前解決は、以下の規則に基づいて行います。
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へ