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

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Хотя любой корректный 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, одно и то же пространство имён можно определять в нескольких файлах, что позволяет распределять их содержимое по файловой системе.