Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 && 연산자가 false로 평가되지 않는 이유는 무엇일까요?

PHP에서 &&(AND) 연산자를 사용하면 나열된 모든 조건이 참(true)이어야만 전체 조건식이 참으로 평가됩니다. 반대로 단 하나의 조건이라도 거짓(false)이면 전체 결과는 거짓이 됩니다.

왜 false로 평가되지 않았을까?

질문의 예제 코드가 false로 평가되지 않는 이유는 간단합니다. 실제로 모든 조건이 참을 만족하고 있기 때문입니다. 하나씩 살펴보겠습니다.

  • $firstCondition은 "John"이므로 $firstCondition == "John" → 참
  • $secondCondition은 "David"이므로 $secondCondition == "David" → 참
  • 마지막 괄호 안의 조건 ($firstCondition == "Mike" || $firstCondition == "John") → $firstCondition은 "Mike"가 아니지만, OR(||) 연산자는 둘 중 하나만 참이면 되므로 "$firstCondition == \"John\""이 참이기 때문에 전체가 참

결국 세 조건이 모두 참이므로 && 연산의 최종 결과도 true가 되고, if 블록 내부의 문장이 실행됩니다.

예제 코드

<!DOCTYPE html>
<html>
<body>
<?php
    $firstCondition = "John";
    $secondCondition = "David";
    if ($firstCondition == "John" && $secondCondition == "David" && ($firstCondition == "Mike" || $firstCondition == "John")) {
        echo "위 조건식은 참입니다";
    } else {
        echo "위 조건식은 참이 아닙니다";
    }
?>
</body>
</html>

출력 결과

위 조건식은 참입니다

핵심 정리

&&(AND)는 모든 조건이 참일 때만 참을 반환하고, ||(OR)는 하나라도 참이면 참을 반환합니다. 따라서 AND 조건이 false로 평가되지 않으려면 연결된 모든 개별 조건이 참이어야 하며, 위 예제에서는 그 조건이 충족되었기 때문에 true가 반환된 것입니다.