원본 주소 : http://www.manongjc.com/article/491.html
const는 클래스 멤버 상수 정의에 사용되며 정의 후에는 변경할 수 없으며 전역적으로 정의합니다. 상수, 다른 위치에서 액세스할 수 있지만 변경할 수는 없습니다. 아래에 몇 가지 세부 정보를 나열하겠습니다.
참고: Define은 클래스에서 정의할 수 없지만 const는 클래스에서 정의해야 합니다. const는 클래스 이름::변수 이름
을 통해 액세스해야 합니다. 1. const는 클래스 멤버 변수 정의에 사용되며, 한 번 정의되면 해당 값을 변경할 수 없습니다. 정의는 어디에서나 액세스할 수 있는 전역 상수를 정의합니다.
2. Define은 클래스에서 정의할 수 없지만 const는 정의할 수 있습니다.
3. const는 조건문에서 상수를 정의할 수 없습니다.
4. const는 일반 상수 이름을 사용하며, 정의는 표현식을 이름으로 사용할 수 있습니다.
5. const는 정적 스칼라만 허용하는 반면, 정의는 모든 표현식을 사용할 수 있습니다.
6. const는 항상 대소문자를 구분하지만, Define()은 세 번째 매개변수를 사용하여 대소문자를 구분하지 않는 상수를 정의할 수 있습니다.
7. const를 사용하는 것은 간단하고 읽기 쉬운 언어 구조입니다. const 정의를 사용하는 것이 컴파일 타임에 정의하는 것보다 훨씬 빠른 방법입니다.
define은 상수를 정의합니다. 클래스에서 상수를 정의하면 어떻게 될까요? 물론, Define을 사용할 수는 없지만 다음 예와 같이 const를 사용합니다.
<?<span>php </span><span>//</span><span>在类外面通常这样定义常量</span><span>define</span>("PHP","111cn.net"<span>); </span><span>class</span><span> MyClass { </span><span>//</span><span>常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号</span><span>const</span><span>constant</span> = 'constant value'<span>; </span><span>function</span><span> showConstant() { </span><span>echo</span> self::<span>constant</span> . "<br>"<span>; } } </span><span>echo</span> MyClass::<span>constant</span> . "<br>"<span>; </span><span>$classname</span> = "MyClass"<span>; </span><span>echo</span><span>$classname</span>::<span>constant</span> . "<br>"; <span>//</span><span> PHP 5.3.0之后</span><span>$class</span> = <span>new</span><span> MyClass(); </span><span>$class</span>-><span>showConstant(); </span><span>echo</span><span>$class</span>::<span>constant</span>."<br>"; <span>//</span><span> PHP 5.3.0之后 //print_r(get_defined_constants()); //可以用get_defined_constants()获取所有定义的常量</span>?>
일반적으로 Define은 클래스 외부의 상수를 정의하고 const는 클래스 내부의 상수를 정의합니다. const는 클래스 이름: : 액세스할 변수 이름을 전달해야 합니다. 그러나 php5.3 이상에서는 클래스 외부에서 const를 통한 상수 정의를 지원합니다. 아래와 같이 해도 괜찮습니다.
<?<span>php </span><span>const</span> a = "abcdef"<span>; </span><span>echo</span><span> a; </span>?>
상수에 대한 기본 지식에 대해서는 언급하지 않겠습니다. 위의 내용 외에도 정의와 const의 다른 차이점(인터넷에서 발췌):
1. const는 조건문에서 상수를 정의할 수 없지만 다음과 같이 정의할 수 있습니다.
<?<span>php </span><span>if</span>(1<span>){ </span><span>const</span> a = 'java'<span>; } </span><span>echo</span> a; <span>//</span><span>必错</span>?>2.const는 일반 상수 이름을 사용하고, 정의는 이름으로 표현식을 사용할 수 있습니다.
<?<span>php </span><span>const</span> FOO = 'PHP'<span>; </span><span>for</span> (<span>$i</span> = 0; <span>$i</span> < 32; ++<span>$i</span><span>) { </span><span>define</span>('PHP_' . <span>$i</span>, 1 << <span>$i</span><span>); } </span>?>3.const는 허용만 가능합니다. 정적 스칼라 및 정의는 모든 표현식을 사용할 수 있습니다.
<?<span>php </span><span>const</span> PHP = 1 << 5; <span>//</span><span> 错误</span><span>define</span>('PHP', 1 << 5); <span>//</span><span> 正确 </span>?>4.const 자체가 언어 구조입니다. 그리고 정의는 함수입니다. 따라서 const를 사용하는 것이 훨씬 빠릅니다. 두 가지 일반적인 동기화: 둘 다 재할당할 수 없습니다.
위 내용은 관련 측면을 포함하여 php const와 정의의 차이점을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.