PHP에서 const와 정의의 차이점(보충)

WBOY
풀어 주다: 2016-07-30 13:30:39
원래의
821명이 탐색했습니다.

상수는 단순 값의 식별자(이름)입니다. 이름에서 알 수 있듯이 스크립트 실행 중에는 값이 변경될 수 없습니다(상수가 아닌 소위 매직 상수 제외). 상수는 기본적으로 대소문자를 구분합니다. 일반적으로 상수 식별자는 항상 대문자입니다.

define() 함수를 사용하여 상수를 정의할 수 있습니다. PHP 5.3.0 이후에는 const 키워드를 사용하여 클래스 정의 외부에서 상수를 정의할 수 있습니다. 이전 버전에서는 const 키워드를 클래스 내에서만 사용할 수 있었습니다. 상수가 정의되면 변경하거나 정의 취소할 수 없습니다.

상수에는 스칼라 데이터(부울, 정수, 부동 소수점 및 문자열)만 포함될 수 있습니다. 자원 상수를 정의하는 것은 가능하지만 예측할 수 없는 결과를 초래할 수 있으므로 피해야 합니다.

상수는 이름만 지정하면 값을 얻을 수 있습니다. 변수와 달리 상수 앞에 $ 기호를 추가하면 안 됩니다. 상수 이름이 동적이면 상수() 함수를 사용하여 상수 값을 가져올 수도 있습니다. 정의된 모든 상수 목록을 얻으려면 get_define_constants()를 사용하십시오.

상수와 변수의 차이점은 다음과 같습니다.

  • 상수 앞에 달러 기호($)가 없습니다.
  • 상수는 정의만 가능합니다. Assignment 문을 통하지 않고 정의() 함수를 사용합니다.
  • 변수의 범위에 관계없이 어디에서나 상수를 정의하고 액세스할 수 있습니다.
  • 한 번 정의된 상수는 다시 정의하거나 정의 취소할 수 없습니다. >
  • 상수 값은 스칼라만 가능합니다.
예제 1 상수 정의

1 <?php

2define("CONSTANT", "Hello world.");

3echoCONSTANT; // outputs "Hello world."

4echoConstant; // 输出 "Constant" 并发出一个提示性信息

5?>
예제 #2 const 키워드를 사용하여 상수를 정의합니다

1 <?php

2// 以下代码在 PHP 5.3.0 后可以正常工作

3constCONSTANT = 'Hello World';

4echoCONSTANT;

5?>
예제 #3 합법적인 상수 이름과 불법적인 상수 이름

01 <?php

02 // 合法的常量名

03 define("FOO",     "something");

04 define("FOO2",    "something else");

05 define("FOO_BAR", "something more");

06 // 非法的常量名

07 define("2FOO",    "something");

08 // 下面的定义是合法的,但应该避免这样做:(自定义常量不要以__开头)

09 // 也许将来有一天PHP会定义一个__FOO__的魔术常量

10 // 这样就会与你的代码相冲突

11 define("__FOO__", "something");

PHP에서 상수를 정의할 때 const와 정의의 차이점은 다음과 같습니다.

const를 사용하면 코드가 간단하고 읽기 쉬워지지만 const 자체는 언어 구조입니다. 정의는 함수입니다. 또한 const는 컴파일 중에 정의하는 것보다 훨씬 빠릅니다.

(1).const는 클래스 멤버 변수 정의에 사용됩니다. 한 번 정의하면 수정할 수 없습니다. Define은 클래스 멤버 변수 정의에 사용할 수 없지만 전역 상수에는 사용할 수 있습니다.

(2).const는 클래스에서 사용할 수 있지만 정의할 수는 없습니다.

(3).const는 조건문에서 상수를 정의할 수 없습니다.

예:

1 if(...){

2     constFOO = 'BAR';    // 无效的invalid

3 }

4 if(...) {

5     define('FOO', 'BAR'); // 有效的valid

6 }

(4).const는 일반 상수 이름을 취하고, 정의는 다음과 같은 표현식을 취할 수 있습니다. 이름.

1 const  FOO = 'BAR';

2 for($i= 0; $i< 32; ++$i) {

3     define('BIT_'. $i, 1 << $i);

4 }

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

예:

1 constBIT_5 = 1 << 5;    // 无效的invalid

2 define('BIT_5', 1 << 5); // 有效的valid

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

예:

1 define('FOO', 'BAR', true);

2 echoFOO; // BAR

3 echofoo; // BAR

관련 함수:

define — 상수 정의

설명:

bool 정의 ( 문자열 $name , 혼합 $value [, bool $case_insensitive = false ]

매개변수:

name: 상수 이름.

value: 상수 값 ;스칼라와 null만 허용됩니다. 스칼라의 유형은 정수, 부동 소수점, 문자열 또는 부울입니다. 상수 값의 유형을 리소스로 정의하는 것도 가능하지만 권장되지 않으며 알 수 없는 상황이 발생할 수 있습니다. >
case_insensitive: TRUE로 설정하면 상수는 대소문자를 구분하지 않습니다. 예를 들어 CONSTANT와 Constant는 서로 다른 값을 나타냅니다. (참고: 대소문자를 구분하지 않는 상수는 대소문자를 구분하지 않습니다. >)

반환 값: TRUE on 성공, 실패 시 FALSE.

상수 — 상수 값을 반환합니다

설명:

혼합 상수( 문자열 $ name )

상수의 이름을 모르지만 상수의 값을 가져와야 할 때 name을 통해 상수의 값을 반환합니다. 즉, 상수가 매우 유용합니다. 이름은 변수에 저장되거나 함수에 의해 반환됩니다. 이 함수는

매개변수에도 적용됩니다. 이름: 상수 이름. > 상수가 정의되지 않은 경우 NULL을 반환합니다.


설명:

bool 정의됨( string $name )

이름의 상수가 정의되어 있는지 확인하세요.

참고: 변수가 있는지 확인하려면 isset()을 사용하세요. ,

매개변수를 사용합니다. :

이름: 상수의 이름입니다. 반환 값:

이 이름의 상수가 정의된 경우 TRUE를 반환하고, 정의되지 않은 경우 FALSE를 반환합니다.

get_define_constants:

모든 상수의 이름과 해당 값이 포함된 연관 배열을 반환합니다.

다음과 같은 이름이 포함된 연관 배열을 반환합니다. 모든 상수와 해당 값의 값입니다. 여기에는 확장 및 정의() 함수에 의해 생성된 상수가 포함됩니다.

위 내용은 관련 내용을 포함하여 PHP에서 const와 정의의 차이점을 소개합니다(보충). PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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