Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Рабочая тетрадь(4)

.pdf
Скачиваний:
36
Добавлен:
10.02.2016
Размер:
7 Мб
Скачать
☆

use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another;

//объект класса My\Full\Classname

$a = 'Another'; $obj = new $a;

//объект класса Another

use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another;

//объект класса My\Full\Classname

$obj = new \Another;

//объект класса Another

$obj = new Another\SomeClass;

//объект класса My\Full\Classname\SomeClass

$obj = new \Another\thing;

//объект класса Another\SomeClass

В пространстве имен

namespace MyProject;

echo '"', __NAMESPACE__, '"'; // "MyProject"

В глобальном пространстве

echo '"', __NAMESPACE__, '"'; // ""

В динамических конструкциях

namespace MyProject;

function get($classname) {

$a = __NAMESPACE__ . '\\' . $classname; return new $a;

}

namespace A;

use B\D, C\E as F;

foo();

Попытка вызвать "foo" объявленную в пространстве "A", далее вызов глобальной "foo"

\foo();

вызов "foo" в глобальном пространстве

my\foo();

вызов "foo" объявленной в пространстве "A\my"

F();

Попытка вызвать "F" объявленную в пространстве "A", далее вызов глобальной "F"

namespace A;

use B\D, C\E as F;

new B();

Создает объект класса "B" пространства "A", ( autoload ( "A\B" ) )

new D();

Тоже для класса "D" пространства "B", ( autoload ( "B\D" ) )

new F();

Тоже для класса "E" пространства "C", ( autoload ( "C\E" ) )

new \B();

Тоже для глобального класса "B", ( autoload ( "B" ) )

new \D();

Тоже для глобального класса "D", ( autoload ( "D" ) )

new \F();

Тоже для глобального класса "F", ( autoload ( "F" ) )

namespace A;

use B\D, C\E as F;

B\foo();

Вызов функции "foo" пространства "A\B"

B::foo();

Вызов метода "foo" класса "B" пространства "A", ( autoload ( "A\B" ))

D::foo();

Вызов метода "foo" класса "D" пространства "B", ( autoload ( "B\D" ))

\B\foo();

Вызов функции "foo" пространства "B"

\B::foo();

Вызов метода "foo" глобального класса "B", ( autoload ( "B" ))

namespace A;

use B\D, C\E as F;

A\B::foo();

Вызов метода "foo" класса "B" пространства "A\A", ( autoload ( "A\A\B" ))

\A\B::foo();

Вызов метода "foo" класса "B" пространства "A", ( autoload ( "A\B" ))

namespace\B::foo();

Вызов метода "foo" класса "B" пространства "A", ( autoload ( "A\B" ))

Объявление пространства имен

Иерархия

Правила доступа

Unqualified name

Qualified name

Fully qualified name

Глобальный доступ

Импорт и псевдонимы

Псевдоконстанта __NAMESPACE__

Игорь Борисов http://igor-borisov.ru

Тестирование кода

Модульное тестирование

PhpUnit

Утверждения

Зависимости

Источники данных

Тестирование базы данных

Тестирование наборов