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

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