[PHP] 논리 연산자

Devbaul·2021년 8월 17일
0

PHP

목록 보기
23/24
post-thumbnail

논리 연산자

  • 논리 값을 연산하는 것이 논리 연산자입니다. 논리 값을 연산한 결과도 논리 값이 됩니다.

논리 연산자 표

연산자연산식설명
&&a && ba와 b가 모두 true면 true(논리값)
anda and ba와 b가 모두 true면 true(논리곱)
ㅣㅣa ㅣㅣ ba와 b 중 하나라도 true면 true(논리합)
ora or ba와 b 중 하나라도 true면 true(논리합)
xora xor ba와 b 중 어느 한쪽만 true면 true(배타적 논리합)
!!aa가 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)

and 와 or 연산자를 사용한 계산식

  • 논리곱은 &&와 and, 논리합은 || 과 or와 같이 두 종류의 연산자가 있습니다.

and, or 실습 예제

<?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)

연산자 우선순위가 원인인 잘못된 코드

  • and와 or를 사용하려면 ($test1 and $tess2)와 같이 논리식을 괄호로 묶어야 합니다. 그 이유는 and와 or의 우선순위가 대입 션산자인 = 보다 낮기 때문입니다. 논리식을 괄호로 묶지 않으면 먼저 $result1 = $result2 부분이 실행되어 잘못된 코드가 됩니다.

실습 코드

<?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)

profile
자유로운 개발을 공부중

0개의 댓글