> 백엔드 개발 > PHP 문제 > PHP가 const 오류를 사용하는 이유는 무엇입니까?

PHP가 const 오류를 사용하는 이유는 무엇입니까?

silencement
풀어 주다: 2023-02-25 10:12:01
원래의
2833명이 탐색했습니다.

PHP가 const 오류를 사용하는 이유는 무엇입니까?

define이 상수를 정의한다는 것은 누구나 알고 있습니다. 클래스에서 상수를 정의하면 어떨까요? 물론, Define을 사용할 수는 없지만 다음 예와 같이 const를 사용합니다.

<?php
//在类外面通常这样定义常量
define("PHP","phpernote.com");
class MyClass{
    //常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号
    const constant = &#39;constant value&#39;;
    function showConstant() {
        echo  self::constant;
    }
} 
echo MyClass::constant;
 
$classname = "MyClass";
echo $classname::constant; // PHP 5.3.0之后
 
$class = new MyClass();
$class->showConstant();
echo $class::constant; // PHP 5.3.0之后

print_r(get_defined_constants()); //可以用get_defined_constants()获取所有定义的常量
로그인 후 복사

일반적으로 Define은 클래스 외부의 상수를 정의하고, const는 클래스 내부의 상수를 정의하며, const는 클래스 이름::변수 이름을 통해 액세스해야 합니다. 그러나 php5.3 이상에서는 클래스 외부에서 const를 통해 상수를 정의하는 것을 지원합니다. 아래를 참조하세요.

const a = "abcdef";
echo a;
로그인 후 복사

상수에 대한 기본 지식에 대해서는 여기서 다루지 않겠습니다. 정의와 const 사이(인터넷에서 가져옴):

1.const는 조건문에서 상수를 정의할 수 없지만 다음과 같이 정의할 수 있습니다.

if(1){
    const a = &#39;java&#39;;
}
echo a;  //必错
로그인 후 복사

2.const는 일반 상수 이름을 사용하고, 정의는 표현식을 이름으로 사용할 수 있습니다.

const  FOO = &#39;PHP&#39;;
for ($i = 0; $i < 32; ++$i) { 
    define(&#39;PHP_&#39; . $i, 1 << $i); 
}
로그인 후 복사

3.const는 정적 스칼라만 허용할 수 있지만 정의는 모든 표현식을 사용할 수 있습니다.

const PHP = 1 << 5;    // 错误
define(&#39;PHP&#39;, 1 << 5); // 正确
로그인 후 복사

4.const 자체가 언어 구조입니다. 그리고 정의는 함수입니다. 따라서 const를 사용하는 것이 훨씬 빠릅니다.

이것이 PHP에서 const와 정의의 차이점입니다.

위 내용은 PHP가 const 오류를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿