Имената се определят съгласно следните правила за определяне:
C::D::e()
се преобразува до A::B::C::D::e()
.
new C()
ще се преобразува до new A::B::C()
.
new C()
:
new ::C()
.
new A::B::C()
сочи към клас C
от пространството от имена A::B.
Example #1 Примери за определянето на имена
<?php
namespace A;
// извиквания на функции
foo(); // първо се прави опит за извикване на "foo", дефинирана в пространството от имена "A"
// след това извиква вътрешната функция "foo"
::foo(); // извиква функция "foo", дефинирана в глобалната област на действие
// референции към класове
new B(); // първо се прави опит за създаване на обект от клас "B", дефиниран в пространството от имена "A"
// след което създава обект от вътрешния клас "B"
new ::B(); // създава обект от клас "B", дефиниран в глобалната област на действие
// статични методи/функции на пространството от имена от друго пространство от имена
B::foo(); // първо се прави опит за извикване на функция "foo" от пространството от имена "A::B"
// след това извиква метод "foo" от вътрешния клас "B"
::B::foo(); // първо се прави опит за извикване на функция "foo" от пространството от имена "B"
// след това извиква метод "foo" от клас "B" на глобалната област на действие
// статични методи/функции на пространството от имена от текущото пространство от имена
A::foo(); // първо се прави опит за извикване на функция "foo" от пространството от имена "A::A"
// след това се прави опит за извикване на метод "foo" от клас "A" от пространството от имена "A"
// след това се прави опит за извикване на функция "foo" от пространството от имена "A"
// след това извиква метод "foo" от вътрешния клас "A"
::A::foo(); // първо се прави опит за извикване на функция "foo" от пространството от имена "A"
// след това извиква метод "foo" от клас "A" на глобалната област на действие
?>