1. 상수
상수 는 단순 값의 식별자(이름)입니다. 이름에서 알 수 있듯이 스크립트 실행 중에는 값이 변경될 수 없습니다(상수가 아닌 소위 매직 상수 제외). 상수는 기본적으로 대소문자를 구분합니다. 규칙에 따라 상수 식별자는 항상 대문자입니다.
상수 이름은 다른 PHP 태그와 동일한 명명 규칙을 따릅니다. 법적 상수 이름은 문자 또는 밑줄로 시작하고 그 뒤에 문자, 숫자 또는 밑줄이 옵니다. 을 이용한 정규식은 다음과 같이 표현됩니다. :
[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]* (참고: 여기서 문자는 a-z, A-Z 및 127~255입니다. (ASCII 문자 0x7f-0xff)
슈퍼 전역 변수와 마찬가지로 상수의 범위는 전역입니다. 범위에 관계없이 스크립트의 어느 곳에서나 상수에 액세스할 수 있습니다. 함수에 대한 자세한 내용은 Variable Scope 매뉴얼을 읽어보세요.
2. 문법
상수는 Define() 함수를 사용하여 정의할 수 있습니다. 상수가 정의되면 프로그램 실행 중에 변경하거나 정의 취소할 수 없습니다.
상수에는 스칼라 데이터(부울, 정수, 부동 소수점 및 문자열)만 포함될 수 있습니다.
간단히 이름을 지정하여 상수 값을 얻을 수 있습니다. 상수 앞에 $ 기호를 붙이지 마십시오. 상수 이름이 동적이면 상수() 함수를 사용하여 상수 값을 읽을 수도 있습니다. 정의된 모든 상수 목록을 얻으려면 get_define_constants()를 사용하십시오.
참고: 상수와 (전역) 변수는 서로 다른 네임스페이스에 있습니다. 이는 예를 들어 TRUE와 $TRUE가 다르다는 것을 의미합니다.
정의되지 않은 상수가 사용되면 PHP는 마치 문자열로 호출하는 것처럼 상수 자체의 이름을 원한다고 가정합니다(CONSTANT는 "CONSTANT"에 해당함). E_NOTICE 수준 오류가 발생합니다. $foo[bar]가 잘못된 이유에 대해서는 매뉴얼을 참조하십시오(미리 정의()를 사용하여 bar를 상수로 정의하지 않는 한). 특정 상수가 정의되어 있는지 확인하고 싶다면 Defined() 함수를 사용하세요.
3. 상수와 변수의 차이점
상수 앞에 달러 기호($)가 없습니다.
상수는 할당문이 아닌 정의() 함수를 통해서만 정의할 수 있습니다.
변수 범위 규칙에 관계없이 어디서나 상수를 정의하고 액세스할 수 있습니다.
일단 정의된 상수는 다시 정의하거나 정의 취소할 수 없습니다.
상수 값은 스칼라 값만 될 수 있습니다.
상수 정의의 예:
<?php define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." echo Constant; // outputs "Constant" and issues a notice. ?>
4. 미리 정의된 상수
PHP는 실행되는 모든 스크립트에 미리 정의된 수많은 상수를 제공합니다. 그러나 많은 상수는 서로 다른 확장 라이브러리에 의해 정의되며 이러한 확장 라이브러리가 로드되거나 동적으로 로드되거나 컴파일 타임에 포함되는 경우에만 나타납니다.
어디에 사용되는지에 따라 달라지는 4개의 마법 상수가 있습니다. 예를 들어, __LINE__ 값은 스크립트에 있는 줄에 따라 달라집니다. 이러한 특수 상수는 다음과 같이 대소문자를 구분하지 않습니다.
여러 PHP "마법 상수"
__LINE__ 파일의 현재 줄 번호입니다.
__FILE__ 파일의 전체 경로 및 파일 이름입니다.
__FUNCTION__ 함수 이름(PHP 4.3.0의 새로운 기능).
__CLASS__ 클래스 이름(PHP 4.3.0의 새로운 기능).
__METHOD__ 클래스의 메소드 이름(PHP 5.0.0에서 새로 추가됨).
위 내용은 PHP 상수의 기본 내용을 자세히 소개한 내용이므로 모든 분들의 학습에 도움이 되기를 바랍니다.