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