PHP'de Ternary Operatör Kullanımı: Kapsamlı Rehber
PHP'de ternary operatör, if-else yapılarını tek satırda yazmanızı sağlayan güçlü bir kısayoldur.
Bu yazımızda, ternary operatörü detaylı bir şekilde ele alacak ve pratik örneklerle kullanımını gösterecektir.
Ternary Operatör Nedir?
Ternary operatör, adını üç parçadan oluştuğu için almıştır ve şu yapıda kullanılır:
koşul ? doğruysa_değer : yanlışsa_değer;
Bu yapı, aşağıdaki if-else yapısının kısa bir versiyonudur:
$sonuç = doğruysa_değer;
} else {
$sonuç = yanlışsa_değer;
}
Temel Kullanım Örnekleri
Örnek 1: Basit Değer Ataması
$durum = ($yaş >= 18) ? 'Yetişkin' : 'Çocuk';
echo $durum; // Çıktı: Yetişkin
Örnek 2: Boş Kontrolü
$gösterilecek_ad = empty($kullanıcı_adı) ? 'Misafir' : $kullanıcı_adı;
echo $gösterilecek_ad; // Çıktı: Misafir
Örnek 3: Resim Yolu Belirleme
'küçük_resim' => 'küçük.jpg',
'büyük_resim' => ''
];
$resim_yolu = empty($profil['büyük_resim']) ? $profil['küçük_resim'] : $profil['büyük_resim'];
echo $resim_yolu; // Çıktı: küçük.jpg
İç İçe Ternary Operatör Kullanımı
Ternary operatörler iç içe de kullanılabilir, ancak okunabilirlik açısından dikkatli olmak gerekir.
Örnek 4: İç İçe Kullanım
$sonuç = ($puan >= 90) ? 'A' : (($puan >= 80) ? 'B' : (($puan >= 70) ? 'C' : 'D'));
echo $sonuç; // Çıktı: C
Bu örnek aşağıdaki if-else yapısına eşdeğerdir:
$sonuç = 'A';
} else if ($puan >= 80) {
$sonuç = 'B';
} else if ($puan >= 70) {
$sonuç = 'C';
} else {
$sonuç = 'D';
}
Kısaltılmış Ternary Operatör
PHP 5.3 sürümünden itibaren, ?:
şeklinde kısaltılmış bir ternary operatör kullanılabilmektedir. Bu operatör, "Elvis operatörü" olarak da bilinir.
Örnek 5: Kısaltılmış Ternary
// Yukarıdaki ifade PHP 7+ için null coalescing operatör
// PHP 5.3+ için kısaltılmış ternary:
$kullanıcı = isset($_GET['kullanıcı']) ? $_GET['kullanıcı'] : 'Misafir';
// Veya daha kısa olarak:
$kullanıcı = $_GET['kullanıcı'] ?: 'Misafir';
Kısaltılmış ternary operatörde (?:
), koşul doğruysa koşulun kendisi döndürülür, yanlışsa alternatif değer döndürülür.
Gerçek Dünya Uygulamaları
Örnek 6: Form Değerlerini Koruma
$email = isset($_POST['email']) ? filter_var($_POST['email'], FILTER_SANITIZE_EMAIL) : '';
Örnek 7: Dil Dosyası Seçimi
$dil_dosyası = "diller/{$dil}.php";
Örnek 8: Sayfalama Kontrolü
$limit = 10;
$başlangıç = ($sayfa - 1) * $limit;
Örnek 9: Koşullu HTML Çıktısı
Örnek 10: Veritabanı Sonucu İşleme
$tam_ad = !empty($kullanıcı['tam_ad']) ? $kullanıcı['tam_ad'] : $kullanıcı['kullanıcı_adı'];
İyi Uygulamalar ve Dikkat Edilmesi Gerekenler
- Okunabilirlik: Ternary operatörler kodunuzu kısaltabilir, ancak aşırı kullanımı okunabilirliği azaltabilir.
- Parantez Kullanımı: Karmaşık ifadelerde parantez kullanmak, kodun anlaşılırlığını artırır:
İç İçe Kullanımda Dikkat: İç içe ternary operatörleri kullanırken, kodun okunabilirliğini korumak için parantezlere dikkat edin:
- İç İçe Kullanımda Dikkat: İç içe ternary operatörleri kullanırken, kodun okunabilirliğini korumak için parantezlere dikkat edin:
// Daha okunaklı:
$sonuç = ($koşul1)
? 'Değer1'
: (($koşul2)
? 'Değer2'
: 'Değer3'); - Yan Etkilerden Kaçının: Ternary operatör içinde fonksiyon çağrıları yapabilirsiniz, ancak karmaşık işlemlerden kaçınmak daha iyidir.
Sonuç
Ternary operatör, PHP'de koşullu ifadeleri kısa ve öz bir şekilde yazmanızı sağlayan güçlü bir araçtır. Doğru kullanıldığında kodunuzu daha temiz ve okunabilir hale getirebilir. Ancak, karmaşık ifadelerde okunabilirliği korumak için özen gösterilmelidir.
Basit koşullarda ternary operatörü kullanmak, kodunuzu daha kısa ve anlaşılır yapacaktır. Özellikle varsayılan değer atama, boş kontrolleri ve kısa koşullu işlemlerde ternary operatörü tercih etmek iyi bir uygulama olacaktır.
Haber :