define
(PHP 4, PHP 5, PHP 7)
define — Определяет именованную константу
Описание
Определяет именованную константу во время выполнения.
Список параметров
-
name
-
Имя константы.
Замечание:
Возможно определить константы с помощью функции define() зарезервированными или даже некорректными именами, значения которых могут быть (только) получены через функцию constant(). Однако, делать это не рекомендуется.
-
value
-
Значение константы. В PHP 5
value
должно быть скалярным значением (int, float, string, bool илиnull
). В PHP 7 также возможно использовать тип array.ВниманиеХотя возможно определить константы с типом resource, не рекомендуется это делать, поскольку может привести к непредсказуемому поведению.
-
case_insensitive
-
Если параметр установлен как
true
, то константа будет определена без учета регистра. По умолчанию константа чувствительна к регистру, то естьCONSTANT
иConstant
представляют разные значения.ВниманиеНачиная с PHP 7.3.0, определение нечувствительных к регистру констант объявлено устаревшим.
Замечание:
Нечувствительные к регистру константы хранятся в нижнем регистре.
Возвращаемые значения
Возвращает true
в случае успешного завершения или false
в случае возникновения ошибки.
Список изменений
Версия | Описание |
---|---|
7.3.0 |
Параметр case_insensitive объявлен устаревшим и будет удален в версии 8.0.0.
|
7.0.0 | Допустимы значения типа array. |
Примеры
Пример #1 Определение констант
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // выводит "Hello world."
echo Constant; // выводит "Constant" и выдает уведомление.
define("GREETING", "Hello you.", true);
echo GREETING; // выводит "Hello you."
echo Greeting; // выводит "Hello you."
// Начиная с PHP 7
define('ANIMALS', array(
'собака',
'кошка',
'птица'
));
echo ANIMALS[1]; // выводит "кошка"
?>
Пример #2 Определение констант зарезервированными именами
Этот пример демонстрирует возможность определения константы с тем же именем, что и магическая константа. Поскольку это, очевидно, сбивающее с толку поведение, не рекомендуется делать это на практике.
<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>
Результат выполнения данного примера:
bool(false) bool(true) string(4) "test" int(5)
Смотрите также
- defined() - Проверяет существование указанной именованной константы
- constant() - Возвращает значение константы
- См. раздел Константы