>백엔드 개발 >PHP 튜토리얼 >PHP 상수 const 및 정의의 차이점 및 사용 예

PHP 상수 const 및 정의의 차이점 및 사용 예

伊谢尔伦
伊谢尔伦원래의
2017-05-25 17:32:271317검색

소위 상수는 단순한 식별자입니다. 이 값은 스크립트 실행 중에는 변경할 수 없습니다. 상수는 기본적으로 대소문자를 구분합니다. 일반적으로 상수 식별자는 항상 대문자입니다. 상수에는 스칼라 데이터(부울, 정수, 부동 소수점 및 문자열)만 포함될 수 있습니다. 리소스 상수를 정의할 수 있지만 예측할 수 없는 결과를 초래할 수 있으므로 피해야 합니다.

섹션 정의
매크로는 상수 값을 바꾸는 데 사용할 수 있을 뿐만 아니라 표현식과 코드 세그먼트까지 바꾸는 데에도 사용할 수 있습니다. (매크로는 매우 강력하지만 오류가 발생하기 쉬우므로 장단점이 상당히 논란의 여지가 있습니다.)
매크로의 구문은 다음과 같습니다.

#define 宏名称 宏值

제안 및 일반적인 관행 프로그래머들 사이에서 일반적으로 매크로 이름은 모두 대문자로 사용되는 경우가 많습니다.
매크로 사용의 장점:
1) 코드를 더욱 간결하고 명확하게 만듭니다.
물론 매크로에 적절한 이름을 지정하는지에 따라 달라집니다. 일반적으로 매크로 이름은 명확하고 직관적인 의미를 가져야 하며 때로는 길게 만드는 것이 더 나을 때도 있습니다.
2) 편리한 코드 유지 관리
컴파일 과정에서 매크로 처리를 "전처리"라고 합니다. 즉, 정식 컴파일 전에 컴파일러는 먼저 코드에 나타나는 매크로를 해당 매크로 값으로 바꿔야 합니다. 이 프로세스는 워드 프로세싱 소프트웨어에서 사용하는 검색 및 바꾸기와 유사합니다. 따라서 코드에서 상수를 표현하기 위해 매크로를 사용하는 경우 최종 분석에서는 즉치수가 사용되며 이 수량의 종류가 명확하게 지정되지 않습니다.
const 부분
상수 정의 형식은 다음과 같습니다.

const 数据类型 常量名 = 常量值;

const로 정의된 상수는 데이터 유형을 정의합니다. 데이터 검사를 통해 프로그램에 문제 해결을 위한 오류가 있을 수 있습니다. 상수는 처음에 값을 지정해야 하며 이후 코드에서는 이 상수의 값을 변경할 수 없습니다.

const와 정의의 차이점:
메모리 공간 할당에 있습니다. 정의는 매크로를 정의할 때 메모리 공간을 할당하지 않으며 컴파일 중에 기본 함수에서 대체됩니다. 이는 유형, 명령문 구조 등의 확인 없이 단순한 대체일 뿐입니다. 즉, 매크로 정의 상수입니다. #define null 0;과 같은 순수한 배치입니다. 컴파일러는 null을 발견할 때 항상 null을 0으로 바꿉니다. 여기에는 데이터 유형이 없습니다(질문이 있는 경우 C 언어 설명서의 전처리 부분을 참조하세요). 또는 MSDN으로 정의된 상수에는 데이터 유형이 있으며, 데이터 유형의 상수를 정의하면 컴파일러가 데이터를 확인하고 프로그램에서 발생할 수 있는 오류를 해결할 수 있습니다. 따라서 const와 정의의 차이점은 const로 상수를 정의하면 보안이 제거된다는 점입니다.

const를 사용하면 코드가 간단해지고 읽기 쉬워집니다. const 자체는 언어 구조이고, 정의는 컴파일 중에 정의보다 훨씬 빠릅니다. 1. Const는 클래스 멤버 변수 정의에 사용되며, Define은 클래스 멤버 변수 정의에 사용할 수 없지만 전역 상수에는 사용할 수 있습니다.

2. 클래스, 정의는 사용할 수 없습니다

3. Const는 조건문에서 사용할 수 없습니다. 상수 정의에서는 코드는 다음과 같습니다.

<?php
if (...){
const FOO = &#39;BAR&#39;;    // 无效的invalid
}
if (...) {
define(&#39;FOO&#39;, &#39;BAR&#39;); // 有效的valid
}
?>

4. const는 일반 상수 이름을 사용합니다. 표현식을 이름으로 사용하는 경우 코드는 다음과 같습니다.

<?php
const  FOO = &#39;BAR&#39;;
for ($i = 0; $i < 32; ++$i) {
define(&#39;BIT_&#39; . $i, 1 << $i);
}
?>

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

<?php
const BIT_5 = 1 << 5;    // 无效的invalid
define(&#39;BIT_5&#39;, 1 << 5); // 有效的valid
?>

6. 상수가 정의됩니다. by const는 대소문자를 구분하고, 정의는 세 번째 매개변수를 전달할 수 있습니다(true는 대소문자를 구분하지 않음을 의미함). 대소문자 구분 여부를 지정하는 코드는 다음과 같습니다.

<?php
define(&#39;FOO&#39;, &#39;BAR&#39;, true);
echo FOO; // BAR
echo foo; // BAR
?>


[관련 글 추천]:

1.

php에서 함수 정의 및 정의 차이점 및 사용 예

위 내용은 PHP 상수 const 및 정의의 차이점 및 사용 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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