MyTetra Share
Делитесь знаниями!
Пространства имен в PHP 5.3 - Обзор пространств имен
Время создания: 22.03.2017 15:38
Текстовые метки: пространство имен, namespace, use, php, php5
Раздел: Компьютер - Программирование - Язык PHP
Запись: xintrea/mytetra_syncro/master/base/1490186319ue3ydt85e8/text.html на raw.github.com

Что такое пространства имен? В широком смысле - это один из способов инкапсуляции элементов. Такое абстрактное понятие можно увидеть во многих местах. Например, в любой операционной системе директории служат для группировки связанных файлов и выступают в качестве пространства имен для находящихся в них файлов. В качестве конкретного примера файл foo.txt может находиться сразу в обеих директориях: /home/greg и /home/other, но две копии foo.txt не могут существовать в одной директории. Кроме того, для доступа к foo.txt извне директории /home/greg, мы должны добавить имя директории перед именем файла используя разделитель, чтобы получить /home/greg/foo.txt. Этот же принцип распространяется и на пространства имен в программировании.

В PHP пространства имен используются для решения двух проблем, с которыми сталкиваются авторы библиотек и приложений при создании повторно используемых элементов кода, таких как классы и функции:

  1. Конфликт имен между вашим кодом и внутренними классами/функциями/константами PHP или сторонними.
  2. Возможность создавать псевдонимы (или сокращения) для Ну_Очень_Длинных_Имен, чтобы облегчить первую проблему и улучшить читаемость исходного кода.

Пространства имен PHP предоставляют возможность группировать логически связанные классы, интерфейсы, функции и константы.


Пример #1 Пример синтаксиса, использующего пространство имен


<?php
namespace my\name; // см. раздел "Определение пространств имен"
class MyClass {}
function myfunction() {}
const MYCONST = 1;

$a = new MyClass;
$c = new \my\name\MyClass; // см. раздел "Глобальная область видимости"

$a = strlen('hi'); // см. раздел "Использование пространств имен: возврат
                   // к глобальной функции/константе"

$d = namespace\MYCONST; // см. раздел "оператор пространства имен и
                        // константа __NAMESPACE__"
$d = __NAMESPACE__ . '\MYCONST';
echo constant($d); // см. раздел "Пространства имен и динамические особенности языка"
?>


Замечание:

Названия пространств имен PHP и php, и составные названия, начинающиеся с этих (такие как PHP\Classes), являются зарезервированными для нужд языка и их не следует использовать в пользовательском коде.


Версия PHP 7.0.0 - Добавлена возможность групповой декларации "use" (через запятую).




Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования