본문 바로가기

카테고리 없음

[php] 이항 연산자와 삼항 연산자, 그 외에 헷갈릴만한 연산자.

✅ 1. 이항 연산자 (Binary Operator)

정의:
피연산자(값)를 두 개 받아서 처리하는 연산자입니다.
거의 대부분의 연산자가 여기에 속합니다.

예시:

$a = 10; $b = 5; $sum = $a + $b; // 덧셈: 15 
$diff = $a - $b; // 뺄셈: 5 
$bool = $a > $b; // 비교 연산: true

 

종류:

  • 산술 연산자 (+, -, *, /, %)
  • 비교 연산자 (==, ===, !=, >, <, <=, >=)
  • 논리 연산자 (&&, ||, and, or)
  • 대입 연산자 (=, +=, -=, .=)
  • 비트 연산자 (&, |, ^, <<, >>)

✅ 2. 삼항 연산자 (Ternary Operator)

정의:
조건문을 한 줄로 축약해서 쓸 수 있는 3개의 피연산자를 가지는 연산자입니다.

문법:

조건 ? 참일_경우 : 거짓일_경우;

예시:

$age = 20; $message = ($age >= 18) ? "성인입니다" : "미성년자입니다"; 
echo $message; // 출력: 성인입니다

🔄 헷갈릴 수 있는 개념들

✅ Null 병합 연산자 (??)

PHP 7 이후 추가된 연산자로, 삼항 연산자처럼 보일 수 있지만 null 여부를 체크합니다.

$name = $_GET['name'] ?? '익명'; // $_GET['name']이 존재하고 null이 아니면 그 값, 아니면 '익명'
삼항 연산자와 달리 isset()을 대체하기 위해 사용합니다.

✅ Elvis 연산자 (?:)

삼항 연산자의 축약형입니다. 좌변이 참이면 그 값을 그대로, 거짓이면 우변을 반환합니다.

$username = $inputName ?: '게스트';

위는 다음과 같음:
$username = ($inputName) ? $inputName : '게스트';

✅ 단항 연산자 (Unary Operator)

피연산자 하나만 사용하는 연산자입니다.

$a = -5; // 부호 변경 
$b = !$a; // 부정 (논리 NOT)
$c = ++$a; // 증가 연산

🔚 요약

연산자  종류 피연산자 수 예시 설명
단항 연산자 1 -a, !a, ++a 하나의 값만 처리
이항 연산자 2 a + b, a > b 두 값을 비교/계산
삼항 연산자 3 a ? b : c 조건식 축약
Elvis 연산자 2 a ?: b 삼항 축약
Null 병합 연산자 2 a ?? b null일 때 기본값 대입