Документация PHP
| Документация DHTML | Документация Smarty | SVG/VML Графика и JavaScript
| Документация bash |
Использование пространств имён
Определение пространства имён
Пространство имён определяется посредством ключевого слова namespace, которое должно находиться в самом начале файла. Пример:
Пример #1 Определение пространства имён.
<?php
namespace MyProject::DB;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>
Пространства имён могут включать определения классов, констант и функций. Но не должны включать обычного кода.
Определение пространства имён работает так:
- Внутри пространства имён все имена классов, функций и констант автоматически будут префиксированы именем пространства имён. Имена классов при вызове должны быть полными, так например при вызове класса из примера выше должно использоваться следующее имя MyProject::DB::Connection.
- Определения констант создают константы, состоящие из имени пространства имён и имени константы. Как и константы классов - константы пространства имён могут содержать данные только скалярного типа.
-
Поиск неквалифицированного имени класса (т.е. не содержащего ::) осуществляется в следующей последовательности:
- Попытка найти класс в текущем пространстве имён (т.е. префиксирование класса именем текущего пространства имён) без попытки автозагрузки (autoload).
- Попытка найти класс в глобальном пространстве имён без попытки автозагрузки (autoload).
- Попытка автозагрузки в текущем пространстве имён.
- В случае неудачи предыдущего - отказ.
-
Поиск неквалифицированного имени функции (т.е. не включающего ::) во время выполнения производится сначала в текущем пространстве имён, затем в глобальном пространстве имён.
-
Поиск неквалифицированного имени константы производится сначала в текущем пространстве имён, затем среди глобально объявленных констант.