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