define

(PHP 4, PHP 5, PHP 7)

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

Описание

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

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

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

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() - Возвращает значение константы
  • См. раздел Константы