Определение пространств имен


(PHP 5 >= 5.3.0)

Хотя любой исправный PHP-код может находиться внутри пространства имен, только классы (включая абстрактные и трейты), интерфейсы, функции и константы зависят от него.

Пространства имен объявляются с помощью зарезервированного слова namespace. Файл, содержащий пространство имен, должен содержать его объявление в начале перед любым другим кодом, кроме зарезервированного слова declare.

Пример #1 Объявление единого пространства имен

<?php
namespace MyProject;

const 
CONNECT_OK 1;
class 
Connection /* ... */ }
function 
connect() { /* ... */  }

?>
Только выражение declare может находиться перед объявлением пространства имен для указания кодировки файла. Кроме того, объявлению пространства имен не должен предшествовать не PHP-код, в том числе лишние пробелы:

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

<html>
<?php
namespace MyProject// fatal error - объявление пространства имен должно быть первым выражением в скрипте
?>

Кроме того, в отличии от любой другой конструкции PHP, одно и тоже пространство имен можно определять в нескольких файлах, что позволяет распределять находящееся в них по файловой системе.