PHP의 물음표 기호

Subodh Poudel 2023년9월19일
  1. PHP에서의 삼항 연산자 소개
  2. PHP에서 삼항 연산자를 사용하여 ‘참’과 ‘거짓’ 표현식 평가하기
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() 함수는 사람이 투표를 할 수 있는지 여부를 결정합니다. 먼저, 변수 $age18보다 크거나 같은지 평가합니다.

다음으로, 우리는 21이라는 투표의 법적 연령으로 canVote() 함수를 호출합니다. 여기에서 표현식은 true로 평가되고 두 번째 표현식이 실행됩니다.

예제 코드:

<?php
function canVote($age){
    echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>

canVote() 함수는 사람이 투표를 할 수 있는지 여부를 결정합니다. 먼저, 변수 $age18보다 크거나 같은지 평가합니다.

다음으로, 우리는 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 Poudel avatar Subodh Poudel avatar

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

관련 문장 - PHP Operator