Новости | Документация | Download | Webboard | FAQ | Поиск | Контакты


Определение пространства имён

Пространство имён определяется посредством ключевого слова namespace, которое должно находиться в самом начале файла. Пример:

Пример #1 Определение пространства имён.

<?php
     
namespace MyProject::DB;

     const 
CONNECT_OK 1;

     class 
Connection /* ... */ }

     function 
connect() { /* ... */  }

     
?>

Это пространство имён может быть использовано в разных файлах.

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

Определение пространства имён работает так:

  • Внутри пространства имён все имена классов, функций и констант автоматически будут префиксированы именем пространства имён. Имена классов при вызове должны быть полными, так например при вызове класса из примера выше должно использоваться следующее имя MyProject::DB::Connection.
  • Определения констант создают константы, состоящие из имени пространства имён и имени константы. Как и константы классов - константы пространства имён могут содержать данные только скалярного типа.
  • Поиск неквалифицированного имени класса (т.е. не содержащего ::) осуществляется в следующей последовательности:

    1. Попытка найти класс в текущем пространстве имён (т.е. префиксирование класса именем текущего пространства имён) без попытки автозагрузки (autoload).
    2. Попытка найти класс в глобальном пространстве имён без попытки автозагрузки (autoload).
    3. Попытка автозагрузки в текущем пространстве имён.
    4. В случае неудачи предыдущего - отказ.

  • Поиск неквалифицированного имени функции (т.е. не включающего ::) во время выполнения производится сначала в текущем пространстве имён, затем в глобальном пространстве имён.

  • Поиск неквалифицированного имени константы производится сначала в текущем пространстве имён, затем среди глобально объявленных констант.

Смотри так же правила разбора имён.






  Copyright Apache.ru © 1999-2017, All Rights Reserved Разработка сайта: Inside.ru  
  РЕКЛАМА НА САЙТЕ: |