이번 강의에서는 PHP 상수에 대해 알아보겠습니다. PHP 상수란 무엇입니까? PHP에서 상수를 만드는 방법은 무엇입니까? PHP 상수는 무엇을 합니까? PHP 상수 생성 규칙은 무엇입니까? 알아보려면 계속 읽어보세요.

상수는 데이터를 저장하는 데 사용되는 간단한 데이터 홀더입니다. 상수는 변수와 같습니다. 변수와 비교했을 때 유일한 차이점은 다음과 같습니다. 변수에 할당된 데이터는 나중에 변경하거나 제거할 수 있습니다(정의되지 않거나 null로 설정). 단, 상수에 할당된 데이터는 나중에 변경하거나 제거할 수 없습니다.

상수를 생성하려면 PHP의 사전 정의된 Define() 함수나 const 키워드를 사용합니다.

아래 예에서는 Define() 함수와 const 키워드를 사용하여 상수를 정의합니다.

define( 'CAR_NAME', 'MERCEDES' );
// define() fonksiyonuyla CAR_NAME adında bir sabit tanımladık ve MERCEDES değerini verdik.
echo CAR_NAME;
// Çıktı: MERCEDES
const COMPANY_NAME = 'Onur Özden Web Çözümleri';
// const anahtar kelimesiyle COMPANY_NAME adında bir sabit tanımladık ve Onur Özden Web Çözümleri değerini verdik.
echo COMPANY_NAME;
// Çıktı: Onur Özden Web Çözümleri

PHP 상수 생성 규칙

  • 상수 이름은 문자나 _(밑줄)로만 시작할 수 있습니다.
  • (A-Z a-z 0-9) 및 _(밑줄)을 상수 이름에 사용할 수 있습니다.
  • 상수 이름에는 특수 문자를 사용할 수 없습니다.
  • 상수명 정의 시 PHP에서 사용하는 예약어(if, break, default, new 등)는 사용할 수 없습니다.
  • 상수에 할당된 값은 나중에 변경, 제거 또는 정의 해제될 수 없습니다.

PHP 상수 생성 권장 사항 및 팁

  • 상수 이름에 전역 코드를 작성하거나 가독성을 위해 터키어 문자를 사용하는 것은 권장되지 않습니다.
  • 전역 영역에서 생성한 상수를 로컬 영역의 const 표현식으로 호출할 수 있습니다. 그러나 로컬 영역에서 생성한 상수를 글로벌 영역에서 호출할 수는 없습니다. 이 규칙은 정의 함수로 생성한 상수에는 적용되지 않습니다. 정의 함수를 사용하여 생성한 상수를 모든 필드에서 모든 필드로 호출할 수 있습니다.
  • Define() 함수로 생성되며 기본적으로 대소문자를 구분합니다. 선택적으로, define() 함수로 생성된 상수는 false를 함수의 세 번째 인수로 할당하여 대소문자를 구분할 수 있습니다. const 키워드로 생성된 상수는 대소문자를 구분하지 않습니다.
  • PHP는 현재 대소문자를 구분하는 상수와 대소문자를 구분하지 않는 상수를 모두 지원합니다. 대소문자를 구분하지 않는 상수는 실용적이지 않으며 기능상 다양한 불일치가 발생할 수 있으며 구현이 과도하게 복잡해집니다. 이러한 이유로 상수를 대소문자를 구분하지 않는 것은 권장되지 않습니다.

PHP 상수 예

아래 예에서는 숫자 데이터 유형의 상수에 값을 지정하고 해당 상수에 다른 상수의 값을 지정하는 방법을 다룹니다.

define('SOFTWARE_VERSION', 2.4);
// define() fonksiyonuyla SOFTWARE_VERSION adında bir sabit tanımladık ve 2.4 değerini verdik.
echo SOFTWARE_VERSION;
// Çıktı: 2.4
const VERSION = SOFTWARE_VERSION;
// const anahtar kelimesiyle VERSION adında bir sabit tanımladık ve SOFTWARE_VERSION sabitinin değerini verdik.
echo VERSION;
// Çıktı: 2.4

아래 예에서는 배열 유형 데이터를 상수에 할당하는 작업을 처리합니다.

define('SOFTWARE_VERSION', 2.4);
// define() fonksiyonuyla SOFTWARE_VERSION adında bir sabit tanımladık ve 2.4 değerini verdik.
echo SOFTWARE_VERSION;
// Çıktı: 2.4
const VERSION = SOFTWARE_VERSION;
// const anahtar kelimesiyle VERSION adında bir sabit tanımladık ve SOFTWARE_VERSION sabitinin değerini verdik.
echo VERSION;
// Çıktı: 2.4

아래 예에서는 전역 영역에서 생성한 상수를 로컬 영역의 const 키워드로 호출하겠습니다.

const GLOBAL_CONSTANT = 'CONSTANT VALUE';
// Global alanda const anahtar kelimesiyle GLOBAL_CONSTANT adlı bir sabit oluşuturduk ve sabite CONSTANT VALUE değerini verdik.
function simple_function(): string
{
    return GLOBAL_CONSTANT;
}

// simple_function adlı bir fonksiyon oluşuturduk ve sabiti döndürdük (return).
echo simple_function();
// Döndürdüğümüz sabiti yazdırdık
// Çıktı: CONSTANT VALUE

아래 예에서는 전역 영역에서 const 키워드를 사용하여 로컬 영역에서 생성한 상수를 호출하겠습니다. 참고: 이 예에서는 오류 출력을 반환합니다. 이 사용법이 올바르지 않기 때문입니다.

// Local alanda const anahtar kelimesiyle GLOBAL_CONSTANT adlı bir sabit oluşuturduk ve sabite CONSTANT VALUE değerini verdik.
function simple_function(): string {
	const GLOBAL_CONSTANT = 'CONSTANT VALUE';
	return GLOBAL_CONSTANT;
}
// simple_function adlı bir fonksiyon oluşuturduk ve sabiti döndürdük (return).
echo simple_function();
// Döndürdüğümüz sabiti yazdırdık
// Çıktı: Parse error: syntax error, unexpected 'const'  (T_CONST)
// Bu hata çıktısını almamızın nedeni local alanda const anahtar kelimesiyle sabit oluşturamamızdır. Const anahtar kelimesiyle bir sabiti sadece top-level veya global dediğimiz tüm scriptte geçerli olan alanlarda oluşturabiliriz.