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