PHP 표현식이란?
PHP 스크립트에서 거의 모든 것은 표현식(expression)입니다. 간단히 말해 값을 가지는 것이라면 무엇이든 표현식입니다. 일반적인 대입문인 $x = 100;을 예로 들면, 리터럴 값, 함수 호출, 연산자가 처리한 피연산자 등 대입 연산자(=)의 오른쪽에 나타나는 모든 요소가 표현식에 해당합니다.
표현식의 기본 문법
다음 예제는 다양한 형태의 표현식을 보여줍니다.
$x=100; // 100은 표현식입니다 $a=$b+$c; // $b+$c는 표현식입니다 $c=add($a,$b); // add($a,$b)는 표현식입니다 $val=sqrt(100); // sqrt(100)은 표현식입니다 $var=$x!=$y; // $x!=$y는 표현식입니다
리터럴 값뿐만 아니라 산술 연산, 함수 호출, 비교 연산의 결과까지 모두 하나의 표현식으로 평가되어 변수에 대입될 수 있습니다.
증가(++) 및 감소(--) 연산자를 사용한 표현식
++와 --는 각각 증가 연산자와 감소 연산자라고 부릅니다. 이들은 하나의 피연산자만 필요한 단항 연산자(unary operator)이며, 전위(prefix) 또는 후위(postfix) 방식으로 사용할 수 있습니다. 다만 어느 위치에 놓이느냐에 따라 표현식의 값에 미치는 영향이 달라집니다.
전위와 후위 모두 피연산자의 값을 1씩 증가(++) 또는 감소(--)시키지만, 대입 표현식에서 사용될 때 동작 순서가 다릅니다.
- 전위(prefix): 먼저 값을 증가/감소시킨 뒤 대입이 이루어집니다.
- 후위(postfix): 먼저 대입이 이루어진 뒤 값이 증가/감소됩니다.
후위(Postfix) 증가 연산자 예제
<?php $x=10; $y=$x++; // $y=$x 실행 후 $x=$x+1이 실행되는 것과 동일 echo "x = $x y = $y"; ?>
실행 결과
x = 11 y = 10
후위 방식에서는 $y에 기존 값인 10이 먼저 대입된 후 $x가 11로 증가했기 때문에 결과가 위와 같습니다.
전위(Prefix) 증가 연산자 예제
반면 아래 예제는 대입 표현식에서 전위 증가 연산자를 사용한 경우입니다.
<?php $x=10; $y=++$x; // $x=$x+1 실행 후 $y=$x가 실행되는 것과 동일 echo "x = $x y = $y"; ?>
실행 결과
x = 11 y = 11
전위 방식에서는 $x가 먼저 11로 증가한 뒤 $y에 대입되므로 두 변수 모두 11이 됩니다.
삼항 조건 연산자를 사용한 표현식
삼항 조건 연산자(ternary conditional operator)는 세 개의 피연산자를 가지는 연산자입니다. 첫 번째 피연산자는 논리 표현식이며, 그 결과가 TRUE이면 두 번째 표현식이 평가되고, FALSE이면 세 번째 표현식이 평가됩니다.
예제
<?php $marks=60; $result= $marks<50 ? "fail" : "pass"; echo $result; ?>
실행 결과
pass
위 예제에서 $marks가 60이므로 조건식 $marks<50은 거짓이 되고, 따라서 세 번째 표현식인 "pass"가 평가되어 출력됩니다. 삼항 연산자는 간단한 if-else 문을 한 줄로 대체할 수 있어 코드를 간결하게 만들 때 유용합니다.