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