Учебник РНР
Назад Вперёд

Глава 8. Константы

Содержание
Синтаксис
Предопределённые константы

Константа это идентификатор (имя) для простого значения. Как следует из названия, это значение не может изменяться в процессе исполнения скрипта. ('Магические константы' __FILE__ и __LINE__ являются исключением из этого правила, но они в действительности не являются константами.) По умолчанию константа чувствительна к регистру символов. По соглашению идентификаторы констант вводятся в верхнем регистре.

Имя константы соблюдает те же правила, что и любая метка PHP. Правильное имя константы начинается с буквы (латинской) или символа подчёркивания, за которой\-ым может следовать любое количество букв, цифр или символов подчёркивания. Как регулярное выражение, константа должна выражаться так: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Примечание: здесь, для наших потребностей, буква это a-z, A-Z и ASCII-символы от 127 до 255 (0x7f-0xff).

Область видимости константы является глобальной - вы можете получать к ней доступ в любой части скрипта, независимо от области видимости.

Синтаксис

Вы можете определить константу функцией define(). После того как константа определена, она не может быть изменена или разопределена/undefined.

Только скалярные данные (boolean, integer, float и string) могут содержаться в константах.

Вы можете получить значение константы, просто специфицировав её имя. В отличие от переменных, вы не должны вводить перед константой символ $. Вы можете также использовать функцию constant() для чтения значения константы, если вы получаете имя константы динамически. Используйте get_defined_constants() для получения списка всех определённых констант.

Примечание: константы и (глобальные) переменные находятся в разных пространствах имён. Это подразумевает, что, например, TRUE и $TRUE в общем случае различны.

Если вы используете неопределённую/undefined константу, PHP принимает, что вы обозначаете имя самой константы. Уведомление/notice будет выдано в этом случае. Используйте функцию defined(), если вы хотите знать, установлено ли значение константы.

Между константами и переменными имеются отличия:

  • Перед именем константы нет знака dollar ($);

  • Константы могут быть определены только через использование функции define(), но не простым присвоением;

  • Константы могут быть определены, и доступ к ним может быть получен, в любом месте, вне зависимости от правил области видимости переменных;

  • Константы не могут быть переопределены или разопределены после своего определения; и

  • Константы могут вычисляться только в скалярные значения.

Пример 8-1. Определение констант
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // выводит "Hello world."
echo Constant; // выводит "Constant" и уведомление.
?>

Назад Оглавление Вперёд
Переменные вне PHP ВверхПредопределённые константы