このレッスンでは、長い if-else コードを短くして読みやすくするために使用される次の方法について説明します。 PHP 三項演算子例を使用して、それが何であるか、どのように使用するかを学びます。

PHP 三項演算子 は、比較と条件を実行するときにコードの長さを短縮する条件演算子です。この演算子は、if-elseif-else またはネストされた if else を使用するための重要な代替手段です。 3 つのオペランドを取るため、三項演算子と呼ばれます。

  • PHP 三項演算子必要なオペランドは次のとおりです。
    状態
  • true の結果 (条件が true の場合に true を返します)
  • falseの結果

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 ブロック内のコードが実行され、「サインイン」出力が提供されました。

// 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 であったため、条件は引き続き実行されました。 2 番目の三項演算子の条件として、$balance 変数のデータが $price 変数のデータと等しいかどうかを尋ねました。 $balance 変数のデータは 24、$price 変数のデータは 30 です。これらは同等ではないため、条件は true を返さず、false を返しました。 PHP 三項演算子最初のデータは条件が true を返した場合にのみ割り当てられ、2 番目のデータは条件が false を返した場合に割り当てられました。条件は false を返し、$message 変数には「製品を購入するための十分な資金がありません」というデータが割り当てられました。 $message 変数を echo で出力しました。

$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