|
Zend поддерживает создание правильных констант (в отличие от регулярных
переменных). Доступ к константам выполняется без префикса обычного знака dollar ($), и они
доступны во всех областях видимости. Примеры - TRUE и FALSE.
Для создания ваших собственных констант вы можете использовать макросы из Таблицы 9.13.
Все эти макросы создают константу со специфицированным именем и значением.
Вы можете также специфицировать для каждой константы флаги:
-
CONST_CS - Имя этой константы рассматривается с учётом регистра.
-
CONST_PERSISTENT - Это существующая константа, и она не будет "забыта", если текущий процесс
будет остановлен.
Для использования этих флагов скомбинируйте их путём использования
двоичного OR:
// регистрируется новая константа типа "long"
REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS | CONST_PERSISTENT);
|
Есть два типа макросов - REGISTER_*_CONSTANT и REGISTER_MAIN_*_CONSTANT.
Первый тип создаёт константы, привязанные к текущему модулю. Эти константы
выгружаются из таблицы символов, как только модуль, зарегистрировавший эти
константы, выгружается из памяти. Второй тип создаёт константы, которые
остаются в таблице символов независимо от модуля.
Рисунок 34-10. Таблица 9.13. Макросы для создания констант
Макрос |
Описание |
REGISTER_LONG_CONSTANT(name, value, flags)
REGISTER_MAIN_LONG_CONSTANT(name, value, flags)
|
Регистрирует новую константу типа long. |
REGISTER_DOUBLE_CONSTANT(name, value, flags)
REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags)
|
Регистрирует новую константу типа double. |
REGISTER_STRING_CONSTANT(name, value, flags)
REGISTER_MAIN_STRING_CONSTANT(name, value, flags)
|
Регистрирует новую константу типа string. Специфицированная строка обязана
размещаться во внутренней памяти Zend. |
REGISTER_STRINGL_CONSTANT(name, value, length, flags)
REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags)
|
Регистрирует новую константу типа string. Длина строки устанавливается явно в
length. Специфицированная строка обязана размещаться во внутренней памяти Zend. |
|
|