define()과 const를 모두 알고 있는 것처럼 PHP 스크립트에서 상수를 선언하는 데 사용됩니다.
구문
<?php const VAR = 'FOO' define('VAR', 'FOO'); ?>
이 둘의 차이점에 대해 논의해 보겠습니다.
- 이 두 가지의 기본적인 차이점은 const 컴파일 타임에 상수를 정의하는 반면 define() 런타임에 정의합니다.
- const를 사용할 수 없습니다. define()을 사용하는 동안 조건부 블록에서 상수를 선언하는 키워드 우리는 그것을 달성할 수 있습니다.
<?php if(){ const VAR = 'FOO'; // invalid } if(){ define('VAR', 'FOO'); //valid } ?>
- 상수 정적 스칼라(숫자, 문자열 또는 true, false, null, __FILE__와 같은 기타 상수)를 허용하는 반면 define() 어떤 표현이든 가능합니다.
-
상수 항상 대소문자를 구분하는 반면 define() 세 번째 인수로 true를 전달하여 대소문자를 구분하지 않는 상수를 정의할 수 있습니다.
- 상수 define() 동안 클래스 상수 또는 인터페이스 상수를 선언하기 위해 클래스 또는 인터페이스 내에서 사용할 수도 있습니다. 이러한 이유로 사용할 수 없습니다.
<?php class abc{ const VAR = 2; // valid echo VAR; // valid } // but class xyz{ define('XUV', 2); // invalid echo XUV;// invalid } ?>
- 위의 예는 const를 사용하여 클래스 내에서 상수를 선언할 수 있음을 보여줍니다. 키워드이지만 define() 클래스 내에서 상수를 선언하는 데 사용할 수 없습니다.