PHP Ternary Operator

php-ternary-operator
Yazı içeriği

Bu derste, uzun if-else kodlarını daha kısa ve daha okunabilir hale getirmek için kullanılan PHP Ternary Operator‘un ne olduğunu ve nasıl kullanıldığını örneklerle öğreneceksiniz.

PHP Ternary Operator karşılaştırmaları ve koşulları gerçekleştirirken kodun uzunluğunu azaltan bir koşullu operatördür. Bu operatör, if-elseif-else veya iç içe if else kullanımına önemli bir alternatiftir. Üç operand aldığı için üçlü operator (ternary operator) olarak adlandırılır. 

  • PHP Ternary Operator‘un aldığı operandlar sırasıyla aşağıdaki gibidir: 
    condition (koşul)
  • result for true (koşul geçerliyse -true döndürürse- sonuç)
  • result for false (koşul geçersizse -false döndürürse- sonuç

PHP Ternary Operator söz dizimi aşağıdaki gibidir:

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

Condition yerine koşul eklenir. statement1 için koşul true döndürürse eklenecek veri, statement2 için koşul false döndürürse eklenecek veri yazılır. 

PHP Ternary Operator (Üçlü Operatör)

İlk örneğimizde PHP Ternary Operator’un if-else ifadesini ne kadar kısalttığına şahit olacağız. Eğer true ise kullanıcı giriş yaptığı için button adını “Çıkış Yap” yapmak, kullanıcı giriş yapmamışsa kullanıcının giriş yapabilmesi için button adını “Giriş Yap” yapmak istiyoruz. Kullanıcı giriş yaptıysa is_user_logged_in değişkenine true, giriş yapmadıysa false değeri verildiğini varsayalım. if koşulunda is_user_logged_in değişkeninin true olup olmadığını sorguladık. Değişken ture olmadığı için ilk koşuldaki kodlar yürütülmedi ve else bloğuna geçildi. Bildiğiniz üzere else bloğundaki kodlar, diğer tüm koşullar geçersizse yürütülür. Bu durumda else bloğundaki kodlar yürültüldü ve “Giriş Yap” çıktısı sağlandı. 

// 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 echo oluşumuyla PHP Ternary Operator‘u kullanabiliriz. 2 örnekle bunu görelim.

$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
PHP
$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 Ternary Operator Zincirleme (Chaining Ternary Operators)

Bu örnekte PHP Ternary Operator içerisinde yeni bir ternary operator daha var. Bu yüzden bu ifadeye PHP Ternary Operator zincirleme (chaining ternary operators) diyoruz.  Şimdi bu örneği anlayalım: Kullanıcı giriş yapmışsa $is_logged_in değişkenine true, yapmamışsa false değeri verildiğini varsayalım. $balance değişkeni kullanıcının bakiyesi, $price değişkeni ürünün fiyatı. $message değişkeni ise kullanıcıya göstereceğimiz mesaj. $message değişkeninde is_logged_in değişkeni true ise koşul çalışmaya devam edecek, false ise, $message değişkenine “Ürünü satın almak için önce hesabınıza giriş yapın” verisi atanacak. $is_logged_in değişkeni true olduğu için koşul çalışmaya devam etti. İkinci ternary operator’de koşul olarak $balance değişkeninin verisinin $price değişkeninin verisi ile denk olup olmadığını sorguladık. $balance değişkeninin verisi 24, $price değişkeninin verisi 30. Denk olmadığı için koşul true döndürmedi, false döndürdü. PHP Ternary Operator‘un ilk verisi sadece koşul true döndürürse atanıyordu, koşul false döndürürse ikinci veri atanıyordu. Koşul false döndürdü ve $message değişkenine “Ürünü satın almak için yeterli bakiyeniz yok” verisi atandı. echo ile $message değişkenini yazdırdık.

$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
PHP

Benzer yazılar

php-foreach
PHP Döngülerin Performanslı ve Etkili Kullanımı

PHP en iyi yaklaşımlar serimizin bu bölümünde PHP döngüler (loop) hakkında kaliteli kodlama ve en iyi yaklaşım örneklerini paylaştık. Artık PHP’de döngüleri daha performanslı ve etkili olarak kullanacaksınız!

Yazıyı oku
PHP Etiketleri
PHP Etiketlerinin Efektif Kullanımı

PHP en iyi yaklaşımlar serimizde bugünki konumuz: PHP etiketleri. PHP etiketlerini en iyi şekilde nasıl kullanabiliriz? PHP’de kısa etiketleri neden kullanmamalıyız? PHP etiketleri hakkında en iyi yaklaşımları öğrenin!

Yazıyı oku
PHP strpos() İşlevinin Doğru Kullanımı
PHP strpos() İşlevinin Doğru Kullanımı

PHP’de strpos işlevinde hiç anlatılmayan ipuçlarını ve sık karşılaşılan hataları hiç düşündünüz mü? Doğru ve en iyi PHP strpos() kullanımını öğrenmek için web sitemizdeki makaleden ve kod örneklerinden hemen ücretsiz…

Yazıyı oku
Yorumunu Paylaş
Sayfa Değerlendirmesi

Hızlı Detay Formu

Hızlı detay formumuzu doldurun ve aynı gün içerisinde taleplerinizi ve sitenizi inceleyip ulaşalım!

Hızlı İletişim Formu

Hızlı iletişim formumuzu doldurun ve aynı gün sitenizi analiz edip size ulaşalım!

Yanıtla
1
Whatsapp Destek Hattı
Merhaba. 👋
Size nasıl yardımcı olabiliriz?