В этой статье представлен принцип и использование пространства имен PHP. Подробности заключаются в следующем:
Пространство имен для (PHP 5.3.0, PHP 7)
Использование базы пространства имен
Пространство имен PHP похоже на файловую систему,
Существует три способа доступа к файлу в файловой системе
- Форма относительного имени файла выглядит следующим образом foo.txt 。 Он будет проанализирован как currentdirectory/foo.txt Где текущий каталог представляет текущий каталог. Таким образом , если текущий каталог /home/для , имя файла разрешается в /home/foo/foo.txt 。
- Относительное имя пути имеет вид subdirectory/foo.txt 。 Он будет проанализирован как currentdirectory/subdirectory/foo.txt 。
- Абсолютный путь представлен в виде /main/foo.txt 。 Он будет проанализирован как /main/foo.txt 。
Элементы в пространстве имен PHP используют тот же принцип. Например, на имена классов можно ссылаться тремя способами:
- Неквалифицированное имя или имя класса без префикса , например $a=new foo(); Или foo::staticmethod (); . Если текущее пространство имен текущее пространство имен , foo будет проанализировано как текущее пространство имен\foo . Если код , использующий foo, является глобальным и не содержится ни в одном пространстве имен, foo разрешается в foo . Предупреждение: если функция или константа в пространстве имен не определена, имя неквалифицированной функции или константы будет быть преобразовано в глобальное имя функции или имя константы.
- Полное имя или имя, содержащее префикс , например $подпространство\foo(); Или подпространство\foo::staticmethod (); . Если текущее пространство имен текущее пространство имен , то foo будет проанализировано как текущее пространство имен\подпространство\foo . Если код, использующий foo, является глобальным и не содержится ни в одном пространстве имен, foo будет разрешен в подпространство\foo .
- Полное имя , или содержит имя оператора глобального префикса, например $a \текущее пространство имен\foo(); Или \currentnamespace\foo::staticmethod (); . В этом случае foo всегда анализируется как буквальное имя в коде текущее пространство имен\foo .
Определение пространств имен
Хотя любой законный PHP-код может быть включен в пространство имен, пространство имен влияет только на следующие типы кода,
Они являются:
- Классы (включая абстрактные классы и признаки)
- Интерфейс
- функция
- постоянный
Пространство имен определяется ключевыми словами пространство имен Для объявления. Если файл содержит пространство имен, он должен объявить его перед всем остальным кодом За исключением одного: объявить ключевое слово.
Пример объявления одного пространства имен
Определите несколько пространств имен в одном файле
Чтобы определить несколько пространств имен, мы рекомендуем использовать синтаксис фигурных скобок
В реальной практике программирования не рекомендуется определять несколько пространств имен в одном файле. Этот метод в основном используется для объединения нескольких PHP – скриптов в один файл.
Синтаксис в фигурных скобках можно использовать только для объединения кода в глобальном пространстве имен, отличном от пространства имен, с кодом в пространстве имен. Глобальный код должен быть заключен в инструкцию пространства имен без имени и фигурных скобок, например:
Ключевые слова пространства имен и__ ПРОСТРАНСТВО ИМЕН__ константа
константа __ПРОСТРАНСТВО ИМЕН__
Значение-это строка, содержащая имя текущего пространства имен.
Если код не включен ни в одно пространство имен, это пустая строка.
Ключевые слова пространство имен Могут использоваться для явного доступа к элементам в текущем пространстве имен или подпространстве имен. Это эквивалентно оператору self .
Использовать пространство имен: псевдоним/импорт
Разрешение ссылаться на внешние полные имена или импортировать их с помощью псевдонимов является важной особенностью пространства имен. Это немного похоже на создание символических соединений с другими файлами или каталогами в файловой системе, подобной UNIX.
В PHP псевдонимы создаются с помощью операторов используйте Для достижения
Глобальное пространство
Если пространство имен не определено, все классы и функции определяются в глобальном пространстве, как и до того, как PHP ввел понятие пространства имен. Добавление префикса к имени указывает на то, что это имя находится в глобальном пространстве, даже если оно находится в другом пространстве имен.
Использовать пространство имен: Глобальная функция/константа резервного копирования
В пространстве имен, когда PHP встречает неквалифицированное имя класса, функции или константы, он использует различные политики приоритета для разрешения имени.
Имена классов всегда разрешаются именами в текущем пространстве имен . Следовательно, имя класса должно быть включено в систему или не полностью определено,
Для функций и констант, если функция или константа не существует в текущем пространстве имен, PHP вместо этого будет использовать функцию или константу в глобальном пространстве.
Официальный документ PHP:
Официальный документ PHP:
Подробнее о содержании, связанном с PHP, заинтересованные читатели могут ознакомиться со специальными разделами этого веб-сайта: “Вводный учебник по объектно-ориентированному программированию PHP”, “Энциклопедия навыков работы с массивами PHP”, “Вводный учебник по базовой грамматике PHP”, “Краткое описание операций PHP и использования операторов”, “Краткое описание использования строк PHP”, “Вводный учебник по работе с базой данных PHP + MySQL” и “Общая работа с базой данных PHP” Краткое описание навыков написания
Я надеюсь, что эта статья будет полезна для программирования на PHP.