Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP에서 define() 대 const 비교

<시간/>

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() 클래스 내에서 상수를 선언하는 데 사용할 수 없습니다.