PHP Null Coalescing nedir? Ne için ve nasıl kullanılır? Bu dersimizde bunları öğreneceğiz.
PHP Null Coalescing operatörü PHP 7 sürümünde tanıtılmıştır. PHP Null Coalescing operatörü koşullu olarak veri atamayı sağlar. Eğer ilk operand varsa ve null değilse ilk operandı döndürür, aksi taktirde ikinci operandı döndürür.
PHP Null Coalescing Örnekleri
// Örnek 1:
echo $name = $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 1.1
if (isset($_POST['name'])) {
echo $name = $_POST['name'];
} else {
echo $name = 'nobody';
}
// Çıktı: nobody
// Örnek 1.2
echo $name = isset($_POST['name']) ? $_POST['name'] : 'nobody';
// Çıktı: nobody
Örnek 1’de name adlı bir post verisi olmadığı için $name değişkenine nobody değeri atandı ve yazdırıldı. Örnek 1, Örnek 1.1 ve 1.2’nin PHP Null Coalescing operatör ile kısaltılmış halidir. İkisi de aynı sonucu döndürür ve aynı anlamı taşır.
// Örnek 2
$first_name = 'Onur';
$last_name = null;
echo ($first_name ?? 'Ad Yok') . ' ' . ($last_name ?? 'Soyad Yok');?>
// Çıktı: Onur Soyad Yok
Örnek 2’de $first_name değişkeni verisi olduğu için ilk koşulda değişkeni geriye döndürdü. Ancak $last_name değişkeni null olduğu için ikinci koşulda ikinci operandı geriye döndürdü ve ‘Soyad Yok’ cümlesini yazdırdı.
PHP Null Coalescing Operatör Zincirleme (Chaining Null Coalescing Operator)
PHP Null Coalescing öperatörü zincirleyerek kullanabiliriz.
// Örnek 3
echo $name = $_GET['name'] ?? $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 3.1
if (isset($_GET['name'])) {
echo $name = $_GET['name'];
} elseif (isset($_POST['name'])) {
echo $name = $_POST['name'];
} else {
echo $name = 'nobody';
}
// Çıktı: nobody
Örnek 3’te PHP, $_GET[‘name’] tanımlıysa $name değişkenine $_GET[‘name’] verisini atar ve yazdırır. Eğer tanımlı değilse $_POST’name’] değişkenini kontrol et, $_POST’name’] tanımlıysa atar ve yazdırır, değilse ‘nobody’ verisini atar ve yazdırır. Örnek 3.1, Örnek 3 ile aynı sonucu döndürür ve aynı anlamı taşır. Örnek 3.1, Örnek 3’ün if-elseif-else koşullu ifadesiyle kodlanmış uzun halidir. Örnek 3 ise PHP Null Coalescing ile kodlanmış kısa halidir.