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