PHP - 상수

은나현·2023년 8월 2일
0

📌 1. PHP 상수(constant)

  • 변수와 마찬가지로 데이터를 저장하는 메모리 공간이지만, 변수와 달리 한번 선언되면 스크립트 실행 동안 데이터를 변경하거나 해제할 수 없다.
  • 선언된 상수는 스크립트 어디에서든 참조할 수 있지만 선언 이전의 영역에서는 참조할 수 없다.

📍1-1. 상수 선언 - define()

  • define() 함수를 사용해 상수를 선언할 수 있다.

    define(상수이름, 상숫값, 대소문자 구분 여부)

    • 상수의 이름과 값을 차례로 전달받으며, 대소문자 구분 여부를 명시하지 않을 시 기본값은 false(대소문자 구분)이다.
      define("php", "php 상수 정의<br>");	// 대소문자 구분함
       echo php; 		// php 상수 정의
       echo PHP;		// PHP
      define("php", "php 상수 정의<br>", true);	// 대소문자 구분 안함
       echo php; 		// php 상수 정의
       echo PHP;		// php 상수 정의 

📍1-2. 마법 상수(magic constants)

  • PHP는 미리 정의된 다양한 상수를 제공하며 이들은 어떤 스크립트에서도 사용할 수 있다.
  • get_defined_constants(true)
    • 미리 정의된 모든 상수를 출력해 주는 예제
      		echo "<pre>";
       		 	print_r(get_defined_constants(true));
      		echo "</pre>";
        #------------------------------
        // <pre></pre> : html문서에서 줄바꿈을 할 때 사용하는 태그 (다른 태그를 안에 사용해서는 안 됨)
        // print_r() : 배열의 키와 값을 출력하는 출력문 (예: [E_ERROR] => 1)
  • 위와 같은 상수들 외에도 어디에 사용하느냐에 따라 용도가 변경되는 8개의 마법 상수가 있다.
    • 이러한 마법 상수들은 대소문자를 구분하지 않는다.
      상수 이름설명
      __LINE__파일의 현재 줄번호 반환
      __FILE__파일의 전체 경로, 이름 반환
      include 내부에서 사용할 경우 include된 파일명 반환
      __DIR__파일의 디렉터리 반환
      포함한 파일 안에서 사용할 경우 포함된 파일의 디렉터리 반환
      dirname(__FILE__)과 같은 결과를 반환함
      __FUNCTION__함수의 이름을 반환
      __CLASS__클래스의 이름을 반환 (클래스 이름은 대소문자 구분)
      __TRAIT__트레이트(trait)의 이름을 반환
      트레이트의 이름은 트레이트를 선언한 네임스페이스를 포함
      __METHOD__클래스의 메소드 이름을 반환
      __NAMESPACE__현재 네임스페이스의 이름을 반환

➕ 트레이트 (trait)

  • 공통적으로 사용하는 메소드나 프로퍼티를 재사용 가능하게 해주는 기능으로 인터페이스와 비슷하지만 구현부를 제공한다.
    PHP가 단일 상속 모델을 가지는 데서 발생하는 문제를 보완할 수 있다.

0개의 댓글