상수

목차

상수는 단순 값의 식별자(이름)입니다. 이름에서 알 수 있듯이 해당 값은 스크립트 실행 중에 변경할 수 없습니다(실제로 상수가 아닌 매직 상수 제외). 상수는 대소문자를 구분합니다. 규칙에 따라 상수 식별자는 항상 대문자입니다.

메모:

PHP 8.0.0 이전에는 define() 함수를 사용하여 정의된 상수가 대소문자를 구분하지 않을 수 있습니다.

상수 이름은 PHP의 레이블과 동일한 규칙을 따릅니다. 유효한 상수 이름은 문자 또는 밑줄로 시작하고 그 뒤에 임의의 수의 문자, 숫자 또는 밑줄이 옵니다. 정규식으로 다음과 같이 표현됩니다. ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

예약된 이름이나 유효하지 않은 이름을 가진 상수를 define()하는 가능하며, 그 값은 constant() 함수로만 검색할 수 있습니다. 그러나 그렇게 하는 것은 권장되지 않습니다.

Userland Naming Guide도 참조하십시오.

Example #1 유효하고 유효하지 않은 상수 이름

                  
<?php

// Valid constant names
define("FOO",     "something");
define("FOO2",    "something else");
define("FOO_BAR", "something more");

// Invalid constant names
define("2FOO",    "something");

// This is valid, but should be avoided:
// PHP may one day provide a magical constant
// that will break your script
define("__FOO__", "something");

?>
                  
                

메모 여기서 우리의 목적을 위해 문자는 a-z, A-Z 및 128-255(0x80-0xff)의 ASCII 문자입니다.

superglobals과 마찬가지로 상수의 범위는 글로벌입니다. 상수는 범위에 관계없이 스크립트의 어디에서나 액세스할 수 있습니다. 범위에 대한 자세한 내용은 가변 범위에 대한 매뉴얼 섹션을 참조하십시오.

메모 PHP 7.1.0부터 클래스 상수는 protected 또는 private의 가시성을 선언할 수 있어 정의된 클래스의 계층적 범위에서만 사용할 수 있습니다.