Defining namespaces
Оновлено: 11.05.2023
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Хоча будь-який коректний PHP-код може міститися в просторі імен, на простір імен впливають тільки такі типи коду: класи (включаючи абстракції і риси), інтерфейси, функції і константи.
Простори імен оголошуються за допомогою ключового слова namespace. Файл, що містить простір назв, має оголошувати простір назв на початку файлу перед будь-яким іншим кодом - за одним винятком: ключовим словом declare.
Приклад #1 Оголошення єдиного простору імен
<?php
namespace MyProject;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>
Зауваження: Повністю кваліфіковані імена (тобто імена, що починаються зі зворотної косої риски) не допускаються в оголошеннях просторів імен, оскільки такі конструкції інтерпретуються як вирази відносного простору імен.
Приклад #2 Оголошення єдиного простору імен
<html>
<?php
namespace MyProject; // fatal error - namespace must be the first statement in the script
?>
Крім того, на відміну від будь-якої іншої конструкції PHP, один і той самий простір імен може бути визначений у декількох файлах, що дозволяє розподіляти вміст простору імен по файловій системі.