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

(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; // Фатальная ошибка, поскольку объявление пространства имён идёт не первой инструкцией в скрипте

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