define이 상수를 정의한다는 것은 누구나 알고 있습니다. 클래스에서 상수를 정의하면 어떨까요? 물론, Define을 사용할 수는 없지만 다음 예와 같이 const를 사용합니다.
<?php //在类外面通常这样定义常量 define("PHP","phpernote.com"); class MyClass{ //常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号 const constant = 'constant value'; 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 = 'java'; } echo a; //必错
2.const는 일반 상수 이름을 사용하고, 정의는 표현식을 이름으로 사용할 수 있습니다.
const FOO = 'PHP'; for ($i = 0; $i < 32; ++$i) { define('PHP_' . $i, 1 << $i); }
3.const는 정적 스칼라만 허용할 수 있지만 정의는 모든 표현식을 사용할 수 있습니다.
const PHP = 1 << 5; // 错误 define('PHP', 1 << 5); // 正确
4.const 자체가 언어 구조입니다. 그리고 정의는 함수입니다. 따라서 const를 사용하는 것이 훨씬 빠릅니다.
이것이 PHP에서 const와 정의의 차이점입니다.
위 내용은 PHP가 const 오류를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!