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

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open