이번 강의에서는 긴 if-else 코드를 더 짧고 읽기 쉽게 만드는 데 사용되는 다음 방법에 대해 설명합니다. PHP 삼항 연산자예제를 통해 무엇이 무엇인지, 어떻게 사용하는지 배우게 됩니다.

PHP 삼항 연산자 비교 및 조건을 수행할 때 코드 길이를 줄이는 조건 연산자입니다. 이 연산자는 if-elseif-else 또는 중첩된 if else를 사용하는 것에 대한 중요한 대안입니다. 세 개의 피연산자를 취하므로 삼항 연산자라고 합니다.

  • PHP 삼항 연산자필요한 피연산자는 다음과 같습니다.
    상태
  • true에 대한 결과(조건이 true인 경우 true를 반환)
  • 거짓에 대한 결과

PHP 삼항 연산자 구문은 다음과 같습니다.

$variable = (condition) ? (statement1) : (statement2);

조건 대신 조건이 추가됩니다. 명령문1의 조건이 true를 반환하면 추가할 데이터가 기록됩니다. 명령문2의 조건이 false를 반환하면 추가할 데이터가 기록됩니다.

PHP 삼항 연산자

첫 번째 예에서는 PHP 삼항 연산자'if-else 문이 얼마나 단축되는지 살펴보겠습니다. true이면 사용자가 로그인했기 때문에 버튼 이름을 "로그아웃"으로 만들고, 사용자가 로그인하지 않았으면 사용자가 로그인할 수 있도록 버튼 이름을 "로그인"으로 만들고 싶습니다. is_user_logged_in 변수에 사용자가 로그인되어 있으면 true 값을, 사용자가 로그인하지 않으면 false 값을 부여한다고 가정해 보겠습니다. if 조건에서는 is_user_logged_in 변수가 true인지 아닌지 질문했습니다. 변수가 확실하지 않기 때문에 첫 번째 조건의 코드는 실행되지 않고 else 블록으로 전달되었습니다. 아시다시피, 다른 모든 조건이 유효하지 않으면 else 블록의 코드가 실행됩니다. 이 경우 else 블록의 코드가 실행되고 "Sign In" 출력이 제공되었습니다.

// if else ile uzun ifade
$is_user_logged_in = false;
if ($is_user_logged_in === true) {
	echo $button_name = 'Çıkış Yap';
} else {
	echo $button_name = 'Giriş Yap';
}
// Çıktı: Giriş Yap
// ternary operator ile kısa ifade
$is_user_logged_in = false;
echo $button_name = $is_user_logged_in ? 'Çıkış Yap' : 'Giriş Yap';
// Çıktı: Giriş Yap

PHP 에코 형성 사용 PHP 삼항 연산자우리는 사용할 수 있습니다. 2가지 예를 통해 이를 살펴보겠습니다.

$number = 20;
echo ($number > 15) ? "15'ten daha büyük" : "15'ten daha büyük değil";
// Çıktı: number değişkeninin verisi 15'ten daha büyük
$number = 5;
echo ($number == 10) ? "number değişkeninin verisi 10'a eşit" : "number değişkeninin verisi 10'a eşit değil";
// Çıktı: number değişkeninin verisi 10'a eşit değil

PHP 삼항 연산자 체이닝 (삼항 연산자 체이닝)

이 예에서는 PHP 삼항 연산자 그 안에 새로운 삼항 연산자가 있습니다. 그렇기 때문에 이 표현은 PHP 삼항 연산자 우리는 이것을 연쇄 삼항 연산자라고 부릅니다.  이제 이 예를 이해해 보겠습니다. 사용자가 로그인한 경우 $is_logged_in 변수에 true 값이 주어지고 그렇지 않으면 false 값이 주어진다고 가정해 보겠습니다. $balance 변수는 사용자의 잔액이고, $price 변수는 제품 가격입니다. $message 변수는 사용자에게 표시할 메시지입니다. $message 변수의 is_logged_in 변수가 true이면 조건이 계속 실행됩니다. false인 경우 "제품을 구매하려면 먼저 계정에 로그인하세요"라는 데이터가 $message 변수에 할당됩니다. $is_logged_in 변수가 true이므로 조건이 계속 실행되었습니다. 두 번째 삼항 연산자의 조건으로 $balance 변수의 데이터가 $price 변수의 데이터와 동일한지 질문했습니다. $balance 변수의 데이터는 24, $price 변수의 데이터는 30입니다. 동일하지 않기 때문에 조건이 true를 반환하지 않고 false를 반환했습니다. PHP 삼항 연산자첫 번째 데이터는 조건이 true를 반환한 경우에만 할당되었고, 두 번째 데이터는 조건이 false를 반환한 경우에 할당되었습니다. 조건이 false를 반환하고 $message 변수에 "제품을 구매할 자금이 충분하지 않습니다."라는 데이터가 할당되었습니다. echo를 사용하여 $message 변수를 인쇄했습니다.

$is_logged_in = true; // kullanıcı giriş yaptı mı?   
$balance = 24; // bakiye
$price = 30; // ürün fiyatı
$message = $is_logged_in
			? ($balance === $price
					? 'Ürünü satın almak için yeterli bakiyeniz var'
					: 'Ürünü satın almak için yeterli bakiyeniz yok')
			: 'Ürünü satın almak için önce hesabınıza giriş yapın';
echo $message;
// Ürünü satın almak için yeterli bakiyeniz yok