Home » PHP -3. 상수

PHP -3. 상수

3.1. 상수

  • 상수는 단순한 값을 위한 식별자(이름)이다.
  • 상수는 기본적으로 대소문자를 구별한다.(관례상 상수명은 대문자로 한다).
  • 형식
    [php]
    define(“상수명”, “상수값”);
    <?php
    // 유효한 상수명
    define("FOO", "something");
    define("FOO2", "something else");
    define("FOO_BAR", "something more");

    // 무효한 상수명
    define("2FOO", "something");

    // 유효하지만, 피해야할 상수명:
    // 어느날 PHP에서 마법 상수를 제공할 수 있으며,
    // 이 경우 스크립트를 사용할 수 없습니다
    define("__FOO__", "something");
    ?>
    [/php]

3.2. 마법 상수

  • PHP는 미리 정의된 다양한 상수를 제공하지만 이 상수의 대부분은 다양한 extension에 의해
    생성된다. 즉, extension이 같이 컴파일 되어 있거나 동적인 로딩이 이루어 져야 사용할 수 있다.
  • PHP는 일곱가지의 마법 상수가 존재한다. 아래는 마법상수의 종류들이다.
이름 설명
__LINE__ 파일의 현재 줄 번호
__FILE__ 파일의 전체경로와 파일명. 포함한 파일 안에서 사용하면, 포함된 파일명을 반환합니다.
PHP 4.0.2부터 __FILE__은 언제나 절대 경로를 가지고 있습니다. 이전에는 특정한 경우에서 상대 경로를 가지고 있었습니다.
__DIR__ 파일의 디렉토리. 포함한 파일 안에서는 포함된 파일의 디렉토리를 반환합니다. 이는dirname(__FILE__)과 동일합니다.
디렉토리명은 루트 디렉토리가 아닌 이상 마지막에 슬래시가 없습니다. (PHP 5.3.0에서 추가)
__FUNCTION__ 함수명. (PHP 4.3.0에서 추가) PHP 5부터 이 상수는 정의된 그대로의 함수명을 반환합니다. (대소문자 구분) PHP 4에서는 항상 소문자였습니다.
__CLASS__ 클래스명. (PHP 4.3.0에서 추가) PHP 5부터 이 상수는 정의된 그대로의 클래스명을 반환합니다. (대소문자 구분) PHP 4에서는 항상 소문자였습니다.
__METHOD__ 클래스 메쏘드명 (PHP 5.0.0에서 추가) 메쏘드 명은 정의한 대로 반환됩니다. (대소문자 구분)
__NAMESPACE__ 현재 이름공간 이름 (대소문자 구분). 이 상수는 컴파일 시에 정의됩니다. (PHP 5.3.0에서 추가)

[약간의 “마법” PHP 상수]