2014-07-12 3 views
-1

PHP를 처음 접했고 함수에 거짓을 전달할 때 코드에서 발견되었습니다. 즉시 null로 변환됩니다. False와 null이 동일하다는 것을 알고있는 몇 가지 기사를 읽었습니다. 그러나 나는이 전환이 언제 일어날 지 모른다.PHP에서 null을 자동으로 null로 변환했습니다.

다음은 내 코드

당신은 어떤지 === 삼중 등호를 사용해야합니다
function equal($expected, $actual){ 
    if($expected == $actual) { //... } 
} 
function foo(){ 
    $signal = getSignal(); 
    equal(FALSE, $signal->good); //... 
} 
+0

당신이 시도 했 볼 '은 ===의 $의 B를 $'? – bhushya

+0

엄격한 동등성 검사를 원하면'==='를 사용하십시오. 그렇지 않으면 데이터 유형 변환 규칙이 적용됩니다. –

+0

사람들이 유효한 질문을 투표하는 이유를 모르겠 음 –

답변

1

입니다. false == null; // true

0 == false; // true

0 === false; // false

false === null; // false

예를

아니요, 그들은 변환되지 않습니다 comparison operators

+0

지적 해 주셔서 고마워, 나는 C에서 내 지식을 대처하고 있었다. – Archer

+0

도움이 되었으면 좋겠다. 가능한 경우 해결 된 것으로 표시해야합니다. –

-1

에있는 문서를 확인하십시오. 언제든지 var_dump($variable)을 입력하여 언제든지 $variable의 유형과 값을 확인할 수 있습니다. 그러나 비교 연산자가 == 인 경우 false으로 평가되는 몇 가지 사항이 있습니다. 따라서 실제로 false == null은 PHP에서 false == 0 또는 false == "0"과 같이 true으로 평가됩니다. 이것이 위의 예에서 == 대신에 ===이라는 비교 연산자를 사용하는 이유입니다. 모두 true 대신에 false으로 평가됩니다. 자세한 내용은

, http://php.net/manual/en/language.operators.comparison.php

관련 문제