define

(PHP 4, PHP 5, PHP 7, PHP 8)

defineОпределяет именованную константу

Описание

define(string $constant_name, mixed $value, bool $case_insensitive = false): bool

Определяет именованную константу во время выполнения.

Список параметров

constant_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, определение нечувствительных к регистру констант объявлено устаревшим. Начиная с PHP 8.0.0, допустимым значением является только false, передача true вызовет предупреждение.

Замечание:

Нечувствительные к регистру константы хранятся в нижнем регистре.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Список изменений

Версия Описание
8.0.0 Передача true в case_insensitive теперь выдаёт ошибку уровня E_WARNING. Передача 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() - Возвращает значение константы
  • Смотрите раздел Константы