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

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

To Top