(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Пространства имён, в широком смысле, — способ инкапсуляции элементов. Такое абстрактное понятие встречается часто. Например, в каждой операционной системе директории группируют связанные файлы и выступают в роли пространства имён для находящихся в них файлов. Конкретный пример, разрешается размещать файл foo.txt
сразу в обоих каталогах: /home/greg
и /home/other
, но двум копиям файла foo.txt
нельзя сосуществовать в одной директории. Кроме сказанного, для доступа к файлу foo.txt
извне каталога /home/greg
надо через разделитель добавить перед именем файла имя директории, чтобы получить путь /home/greg/foo.txt
. Этот же принцип распространяется и на пространства имён в программировании.
В PHP пространства имён решают две проблемы, с которыми сталкиваются авторы библиотек и приложений, когда создают переиспользуемые элементы кода, например классы и функции:
Пространства имён в PHP помогают группировать логически связанные классы, интерфейсы, функции и константы.
Пример #1 Пример синтаксиса с пространством имён
<?php
namespace my\name; // Смотрите раздел «Определение пространств имён»
class MyClass {}
function myfunction() {}
const MYCONST = 1;
$a = new MyClass;
$c = new \my\name\MyClass; // Смотрите раздел «Глобальное пространство»
$a = strlen('hi'); // Смотрите раздел «Пространства имён: возврат
Замечание: Имена пространств имён регистронезависимы.
Замечание:
Название пространства имён «
PHP
» и составные названия, которые начинаются с этого слова (например,PHP\Classes
), зарезервированы для внутренних целей языка, их не нужно писать в пользовательском коде.