기타 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
로 설정하면 상수는 대소문자를 구분하지 않고 정의됩니다. 기본 동작은 대소문자를 구분합니다. 즉,CONSTANT
와Constant
는 다른 값을 나타냅니다.경고 대소문자를 구분하지 않는 상수 정의는 PHP 7.3.0부터 더 이상 사용되지 않습니다. PHP 8.0.0부터
false
만 허용되는 값이며true
를 전달하면 경고가 생성됩니다.메모: 대소문자를 구분하지 않는 상수는 소문자로 저장됩니다.
반환 값
성공하면 true
를, 실패하면 false
를 반환합니다.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | case_insensitive 에 true 를 전달하면 이제 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)
기타
- defined() - 주어진 명명된 상수가 존재하는지 확인
- constant() - 상수 값을 반환합니다.
- Constants 섹션