>백엔드 개발 >PHP 문제 >PHP에서 정의와 const의 차이점은 무엇입니까?

PHP에서 정의와 const의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2020-07-21 10:45:172725검색

차이점: 1. const는 클래스 멤버 변수 정의에 사용되는 반면, Define은 클래스 멤버 변수 정의에 사용할 수 없습니다. 2. const는 정적 스칼라만 허용하는 반면, Define은 모든 표현식을 사용할 수 있습니다. 상수의 크기 쓰기를 구분하지만 정의는 세 번째 매개변수를 통해 대소문자 구분 여부를 지정할 수 있습니다.

PHP에서 정의와 const의 차이점은 무엇입니까?

상수는 기본적으로 대소문자를 구분합니다. 일반적으로 상수 식별자는 항상 대문자입니다.

define()函数来定义常量,在php5.3.0之后,可以使用const 키워드를 사용하여 클래스 정의 외부에서 상수를 정의할 수 있습니다. 이전 버전에서는 const 키워드를 클래스에서만 사용할 수 있습니다.

상수에는 스칼라 데이터(부울, 정수, 부동 소수점, 문자열)만 포함될 수 있습니다. 리소스 상수를 정의할 수 있지만 피해야 합니다.

상수 정의

define("PI", 3.14);
echo PI; // 3.14
echo pi; // 输出 "pi" 并发出一个Warning信息

// 以下代码在 PHP 5.3.0 后可以正常工作
const RATE = 'Hello World';
echo RATE;

PHP에서 상수를 정의할 때 const와 정의의 차이점은

1. Const 자체는 언어 구조이고 정의는 함수입니다.

2. Const는 컴파일 중에 정의하는 것보다 훨씬 빠릅니다.

3. Const는 클래스 멤버 변수 정의에 사용되지만, Define은 클래스 멤버 변수 정의에 사용할 수 없습니다.

4.

if (...){
    const FOO = 'BAR';    // 无效的
}
if (...) {
    define('FOO', 'BAR'); // 有效的
}

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

const BIT_5 = 1 << 5;    // 无效的
define(&#39;BIT_5&#39;, 1 << 5); // 有效的

6. const는 상수를 정의할 때 대소문자를 구분하지만, 정의는 세 번째 매개변수를 통해 대소문자를 지정할 수 있습니다(true는 대소문자를 구분하지 않음을 의미함). ?

define(&#39;FOO&#39;, &#39;BAR&#39;, true);
echo FOO; // BAR
echo foo; // BAR

동적 상수 이름

상수 이름이 동적이면 상수() 함수를 사용하여 상수 값을 가져올 수도 있습니다. 정의된 모든 상수 목록을 얻으려면 get_define_contstants()를 사용하세요.

define(&#39;PI&#39;,3.14);

$chang = &#39;PI&#39;;
echo $chang,&#39;<br/>'; // PI

echo constant($chang); // 3.14

define — 특정 이름을 가진 상수가 존재하는지 확인하세요.

// 真实开发一般是这样的
if(!defined('HEI')){
    define('HEI',8846);
}

추천 관련 튜토리얼: "PHP Tutorial"

위 내용은 PHP에서 정의와 const의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.