PHP의 물음표 기호
PHP에서는 물음표 ?
연산자를 삼항 연산자 또는 조건부 삼항 연산자라고 부릅니다. 이 문서에서는 PHP의 삼항 연산자에 대해 깊이 알아보겠습니다.
PHP에서의 삼항 연산자 소개
삼항 조건 연산자 ?
는 조건 표현식 또는 삼항 연산자로도 알려져 있습니다. 다음과 같은 구문을 가지고 있습니다:
$variable = (condition) ? value_if_true : value_if_false;
구성 요소를 살펴보겠습니다:
-
condition
: 평가되는 부울 표현식입니다. -
value_if_true
:condition
이 참이면$variable
에 할당되는 값입니다. -
value_if_false
:condition
이 거짓이면$variable
에 할당되는 값입니다.
삼항 연산자는 condition
을 평가합니다. 조건이 참이면 value_if_true
를 $variable
에 할당하고, 그렇지 않으면 value_if_false
를 할당합니다.
예제 코드:
<?php
$num = 10;
$result = ($num % 2 == 0) ? "Even" : "Odd";
echo "The number $num is $result.";
?>
결과:
The number 10 is Even.
우리는 삼항 연산자를 사용하여 코드의 길이를 줄이고 가독성을 개선하기 위해 if-else
구조를 대체할 수 있습니다. 간단한 조건식을 작성하는 데 사용할 수 있습니다.
예제 코드:
<?php
$count = (true) ? 1 : 0;
if (true)
{
$count = 1;
}
else
{
$count = 0;
}
echo $count;
?>
결과:
1
하지만 삼항 연산자를 연쇄 또는 중첩할 때 코드를 읽는 것은 일이 될 수 있습니다. 또한 삼항 연산자의 단점은 하위 표현식에 중단점을 배치할 수 없어 코드를 디버그하기 어렵다는 것입니다.
PHP에서 삼항 연산자를 사용하여 ‘참’과 ‘거짓’ 표현식 평가하기
삼항 연산자의 사용법을 살펴보겠습니다. 아래 예제는 ‘참’ 표현식을 평가하고 코드 블록을 실행합니다.
canVote()
함수는 사람이 투표를 할 수 있는지 여부를 결정합니다. 먼저, 변수 $age
가 18
보다 크거나 같은지 평가합니다.
다음으로, 우리는 21
이라는 투표의 법적 연령으로 canVote()
함수를 호출합니다. 여기에서 표현식은 true
로 평가되고 두 번째 표현식이 실행됩니다.
예제 코드:
<?php
function canVote($age){
echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>
canVote()
함수는 사람이 투표를 할 수 있는지 여부를 결정합니다. 먼저, 변수 $age
가 18
보다 크거나 같은지 평가합니다.
다음으로, 우리는 21
이라는 투표의 법적 연령으로 canVote()
함수를 호출합니다. 여기에서 표현식은 true
로 평가되고 두 번째 표현식이 실행됩니다.
출력:
you can vote
다음 예제에서는 18보다 작은 값을 제공하면 비교 표현식은 false
로 평가됩니다. 따라서 세 번째 표현식인 ‘투표할 수 없습니다’가 표시됩니다.
예제 코드:
<?php
function canVote($age){
echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(17);
?>
출력:
you cannot vote
다른 경우에는 표현식을 false
로 반환하는 평가 결과가 됩니다. 예를 들어, 표현식이 null
값, Nan
, 0
또는 빈 값으로 반환되는 경우 표현식은 false
값을 반환합니다.
다음 예제는 falsy
값의 조건을 보여줍니다. 이러한 값들이 평가될 때 삼항 연산자는 세 번째 표현식을 실행합니다.
예제 코드:
<?php
function Car($name){
echo $name?$name:"no name";
echo "<br>";
}
Car("Tesla");
Car(null);
Car("");
Car(0);
?>
출력:
Tesla
no name
no name
no name
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn