PHP 8'de ternary operatörü, koşullu ifadeleri kısa ve öz bir şekilde yazmanızı sağlayan bir yapıdır. Genellikle
if-else
yapısına alternatif olarak kullanılır. Ternary operatörü, tek satırlık bir koşul ifadesi oluşturur ve bir koşulun doğru veya yanlış olmasına göre iki farklı sonucu döndürür.
Ternary Operatörü Sözdizimi:
koşul ? true_ifadesi : false_ifadesi;
-
koşul
: Doğruluğu kontrol edilen ifade. -
true_ifadesi
: Koşul doğru (true) ise çalışacak ifade. -
false_ifadesi
: Koşul yanlış (false) ise çalışacak ifade.
Ternary Operatörü ile Örnekler:
1. Basit Bir Örnek
$age = 20;
$result = ($age >= 18) ? "Reşitsiniz." : "Reşit değilsiniz.";
echo $result;
Bu örnekte, $age
18 veya daha büyükse "Reşitsiniz." mesajı atanır ve ekrana yazdırılır. Aksi halde "Reşit değilsiniz." atanır.
2. Eko ile Kısa Kullanım
$age = 16;
echo ($age >= 18) ? "Giriş yapabilirsiniz." : "Giriş yasak.";
Bu örnekte, yaş 18 veya daha büyükse "Giriş yapabilirsiniz." mesajı yazdırılır, aksi takdirde "Giriş yasak." yazdırılır.
3. Değer Atama ile Ternary
Ternary operatörü bir değişkene değer atamak için de kullanılabilir.
$score = 85;
$grade = ($score >= 90) ? "A" : (($score >= 80) ? "B" : "C");
echo "Notunuz: " . $grade;
Bu örnekte, $score
değişkenine bağlı olarak notlar atanır. 90 veya üzeri puanlar için "A", 80 veya üzeri için "B" ve geri kalanlar için "C" atanır.
4. Ternary Operatöründe Nested (İç İçe) Kullanım
Ternary operatörleri iç içe kullanılabilir, ancak okunabilirliği zorlaştırabilir.
$age = 20;
$result = ($age < 13) ? "Çocuksunuz." : (($age < 18) ? "Gençsiniz." : "Yetişkinsiniz.");
echo $result;
Bu örnekte, $age
13'ten küçükse "Çocuksunuz.", 13 ile 18 arasında ise "Gençsiniz.", 18'den büyükse "Yetişkinsiniz." mesajı yazdırılır.
Nullish Coalescing (Null Birleştirme) ile Ternary
PHP 7.4'te gelen null coalescing (??) operatörü, bir değerin null olup olmadığını kontrol etmek için ternary'ye alternatif olarak kullanılabilir.
$username = $_POST['username'] ?? 'Guest';
echo $username;
Bu örnekte, eğer $_POST['username']
değeri mevcut değilse veya null
ise, "Guest" atanır. Eğer bir değer varsa, o kullanılır.
Ternary Operatörü Avantajları:
- Kısa ve öz bir yazım sağlar.
- Basit koşullarda kodu daha okunabilir kılar.
- Değer atama ve koşullu yazdırma işlemleri tek satırda yapılabilir.
Ternary Operatörü Dezavantajları:
- Karmaşık koşullarda (örneğin, iç içe kullanımlarda) kod okunabilirliğini zorlaştırabilir.
- Çok uzun veya iç içe koşullar için tercih edilmemelidir.
Sonuç:
Ternary operatörü, PHP'de basit koşullu ifadeleri daha kısa ve hızlı yazmak için kullanışlıdır. Ancak, karmaşık koşullarda okunabilirliği korumak için dikkatli kullanılmalıdır.