ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

PHP Учебник

PHP СТАРТ PHP Интро PHP Установка PHP Синтаксис PHP Комментарии PHP Переменные PHP Echo / Print PHP Типы данных PHP Строки PHP Числа PHP Математика PHP Константы PHP Операторы PHP If...Else...Elseif PHP Switch PHP Циклы PHP Функции PHP Массивы PHP Суперглобальные PHP RegEx

PHP Формы

PHP Обработка формы PHP Проверка формы PHP Обязательные поля формы PHP Форма URL/E-mail PHP Заполнение формы

PHP Расширенный

PHP Дата и время PHP Подключение файлов PHP Обработка файлов PHP Файл открыть/читать PHP Файл создать/записать PHP Файл Загрузить PHP Куки PHP Сессии PHP Фильтры PHP Расширенные фильтры PHP Callback функции PHP JSON PHP Исключения

PHP ООП

PHP Что такое ООП PHP классы/объекты PHP Конструктор PHP Деструктор PHP Модификаторы доступа PHP Наследование PHP Константы PHP Абстрактные классы PHP Интерфейсы PHP Трейты PHP Статические методы PHP Статические свойства PHP Пространства имён PHP Итерации

MySQL База данных

MySQL База данных MySQL Подключение MySQL Создать БД MySQL Создать таблицы MySQL Вставить данные MySQL Получить последний ID MySQL Вставить несколько записей MySQL Подготовленные инструкции MySQL Выбрать данные MySQL Where MySQL Order By MySQL Удаление данных MySQL Обновление данных MySQL Ограничение данных

PHP XML

PHP XML Парсеры PHP SimpleXML Парсер PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Интро AJAX PHP AJAX База данных AJAX XML AJAX Живой поиск AJAX Опрос

PHP Примеры

PHP Примеры PHP Компилятор PHP Викторина PHP Упражнения PHP Сертификат

PHP Справочник

PHP Обзор PHP Массив PHP Календарь PHP Дата PHP Каталог PHP Ошибка PHP Исключение PHP Файловая система PHP Фильтр PHP FTP PHP JSON PHP Ключевые слова PHP Libxml PHP Почта PHP Математика PHP Разное PHP MySQLi PHP Сеть PHP Output Control PHP RegEx PHP SimpleXML PHP Поток PHP Строка PHP Обработка переменных PHP XML Парсер PHP Zip PHP Часовые пояса

PHP. Уроки для начинающих

PHP Пространства имён


PHP Пространства имён

Пространства имён - это квалификаторы, которые решают две разные проблемы:

  1. Они позволяют улучшить организацию, группируя классы, которые работают вместе для выполнения задачи
  2. Они позволяют использовать одно и то же имя для нескольких классов

Например, у вас может быть набор классов, описывающих HTML таблицу, например Table, Row и Cell, а также другой набор классов для описания мебели, например Table, Chair и Bed. Пространства имен можно использовать для организации классов в две разные группы, а также для предотвращения смешивания двух классов Table и Table.


Объявление пространства имен

Пространства имен объявляются в начале файла с помощью ключевого слова namespace:

Синтаксис

Объявите пространство имен под названием Html:

namespace Html;

Примечание: Объявление namespace должно быть первым делом в файле PHP. Следующий код будет недействительным:

<?php
echo "Hello World!";
namespace Html;
...
?>

Константы, классы и функции, объявленные в этом файле, будут принадлежать пространству имен Html:

Пример

Создайте класс таблицы в пространстве имен Html:

<?php
namespace Html;
class Table {
  public $title = "";
  public $numRows = 0;
  public function message() {
    echo "<p>Table '{$this->title}' has {$this->numRows} rows.</p>";
  }
}
$table = new Table();
$table->title = "My table";
$table->numRows = 5;
?>

<!DOCTYPE html>
<html>
<body>

<?php
$table->message();
?>

</body>
</html>
Попробуйте сами »

Для дальнейшей организации можно иметь вложенные пространства имен:

Синтаксис

Объявите пространство имен Html внутри пространства имен Code:

namespace Code\Html;

Использование пространств имен

Любой код, следующий за объявлением namespace, работает внутри пространства имен, поэтому классы, принадлежащие к пространству имен, могут быть созданы без каких-либо квалификаторов. Чтобы получить доступ к классам из-за пределов пространства имен, к классу необходимо присоединить пространство имен.

Пример

Используйте классы из пространства имен Html:

$table = new Html\Table()
$row = new Html\Row();
Попробуйте сами »

Когда много классов из одного и того же пространства имен используются одновременно, проще использовать ключевое слово namespace:

Пример

Используйте классы из пространства имен Html без Html\квалификатора:

namespace Html;
$table = new Table();
$row = new Row();
Попробуйте сами »

Псевдоним пространства имен

Может быть полезно присвоить пространству имен или классу псевдоним, чтобы упростить запись. Это делается с помощью ключевого слова use:

Пример

Дайте пространству имен псевдоним:

use Html as H;
$table = new H\Table();
Попробуйте сами »

Пример

Дайте классу псевдоним:

use Html\Table as T;
$table = new T();
Попробуйте сами »