기타 define

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

define — Defines a named constant


설명

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에서는 배열 값도 허용됩니다.

경고 리소스 상수를 정의할 수는 있지만 권장되지 않으며 예측할 수 없는 동작이 발생할 수 있습니다.

case_insensitive
true로 설정하면 상수는 대소문자를 구분하지 않고 정의됩니다. 기본 동작은 대소문자를 구분합니다. 즉, CONSTANTConstant는 다른 값을 나타냅니다.

경고 대소문자를 구분하지 않는 상수 정의는 PHP 7.3.0부터 더 이상 사용되지 않습니다. PHP 8.0.0부터 false만 허용되는 값이며 true를 전달하면 경고가 생성됩니다.

메모: 대소문자를 구분하지 않는 상수는 소문자로 저장됩니다.


반환 값

성공하면 true를, 실패하면 false를 반환합니다.


변경 로그

버전 설명
8.0.0 case_insensitivetrue를 전달하면 이제 E_WARNING이 발생합니다. false 전달은 여전히 ​​허용됩니다.
7.3.0 case_insensitive는 더 이상 사용되지 않으며 버전 8.0.0에서 제거됩니다.
7.0.0 배열 값이 허용됩니다.

Examples

예제 #1 상수 정의

                  
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.

define("GREETING", "Hello you.", true);
echo GREETING; // outputs "Hello you."
echo Greeting; // outputs "Hello you."

// Works as of PHP 7
define('ANIMALS', array(
    'dog',
    'cat',
    'bird'
));
echo ANIMALS[1]; // outputs "cat"

?>
                  
                

예제 #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)
                

기타