연산자 | 연산식 | 설명 |
---|---|---|
&& | a && b | a와 b가 모두 true면 true(논리값) |
and | a and b | a와 b가 모두 true면 true(논리곱) |
ㅣㅣ | a ㅣㅣ b | a와 b 중 하나라도 true면 true(논리합) |
or | a or b | a와 b 중 하나라도 true면 true(논리합) |
xor | a xor b | a와 b 중 어느 한쪽만 true면 true(배타적 논리합) |
! | !a | a가 true면 false, false면 true(부정) |
<?php
##TODO 연산자
$test1 = TRUE;
$test2 = FALSE;
$result1 = $test1 && $test2;
$result2 = $test1 || $test2;
$result3 = !$test1;
var_dump($result1);
var_dump($result2);
var_dump($result3);
#TODO result
#TODO false, true, false
bool(false)
bool(true)
bool(false)
<?php
#TODO 논리곱은 &&와 and, 논리합은 || 와 or과 같이 두 종류의 연산자가 있다.
#TODO and와 or를 사용하면 아래 소스코드와 같다.
$test1 = TRUE;
$test2 = FALSE;
$result1 = ($test1 and $test2);
$result2 = ($test1 or $test2);
var_dump($result1);
var_dump($result2);
#TODO result
#TODO false, true
bool(false)
bool(true)
<?php
#TODO and와 or를 사용하려면 ($test1 and $test2)와 같이 논리식을 괄호로 묶어야 한다.
#TODO 그 이유는 and와 or의 우선순위가 대입연산자인 = 보다 낮기 떄문이다.
#TODO 논리식을 괄호로 묶지 않으면 먼저 $result1 = $test1 부분이 실행되어 잘못된 코드가 됩니다.
$test1 = TRUE;
$test2 = FALSE;
$result1 = $test1 and $test2;
$result2 = $test1 or $test2;
var_dump($result1);
var_dump($result2);
/*
result
true
true
*/
bool(true)
bool(true)