>  기사  >  백엔드 개발  >  PHP에는 값이 정수 1인 미리 정의된 상수 true가 있습니다. 이를 이해하는 방법은 무엇입니까?

PHP에는 값이 정수 1인 미리 정의된 상수 true가 있습니다. 이를 이해하는 방법은 무엇입니까?

WBOY
WBOY원래의
2016-10-10 11:56:262018검색

get_defined_constants()를 실행했을 때 우연히 PHP에 이름이 true이고 값이 1인 내부 상수가 있다는 것을 발견했습니다. false와 null이라는 상수도 있습니다.
PHP는 true를 상수로 취급합니까? "가치"가 아니어야합니까?
부울 데이터 형식의 값이어야 하지 않나요?
echo(true)를 실행하려고 하면 브라우저에서 문자 1이 출력되고 var_dump(true)에서는 bool(true)가 출력됩니다. 이는 명백한 모순이 아닌가요?
게다가 true===1도 true가 아닙니다. true==1이 설정됩니다.
그래서 PHP가 true false null을 어떻게 처리하는지 알고 싶습니다.

답글 내용:

get_defined_constants()를 실행했을 때 우연히 PHP에 이름이 true이고 값이 1인 내부 상수가 있다는 것을 발견했습니다. false와 null이라는 상수도 있습니다.
PHP는 true를 상수로 취급합니까? "가치"가 아니어야합니까?
부울 데이터 형식의 값이어야 하지 않나요?
브라우저 출력 문자 1인 echo(true)를 실행하려고 했더니 var_dump(true), 출력 bool(true)이 나오는데 이건 명백한 모순 아닌가요?
게다가 true===1도 true가 아닙니다. true==1이 설정됩니다.
그래서 PHP가 true false null을 어떻게 처리하는지 알고 싶습니다.

echo 입력은 문자열이므로 true가 유형 변환됩니다. 여기서 참고하시면 됩니다

<code>Printing or echoing a FALSE boolean value or a NULL value results in an empty string:
(string)TRUE //returns "1"
(string)FALSE //returns ""
echo TRUE; //prints "1"
echo FALSE; //prints nothing!</code>

참고문서

뒤틀린 건물. C++ 이야기를 들려주세요.
Windows API에는 BOOL과 유사하게 정의된

데이터 유형이 있습니다.
<code class="cpp">typedef int BOOL;</code>

그리고 TRUEFALSE 매크로가 있으며 각각

으로 정의됩니다.
<code class="cpp">#define TRUE 1
#define FALSE 0</code>

C++ 자체에도 매크로 NULL가 있으며 정의는

입니다.
<code class="cpp">#define NULL 0</code>

그리고 나는 PHP가 true을 부울 유형으로 취급한다고 생각합니다. 1. 추측만 해보면, 제가 틀렸다면 자유롭게 이의를 제기하시기 바랍니다.

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