Null Coalescing operatörü PHP 7'de tanıtılan birçok yeni özellikten biridir. "Coalescing" kelimesi birçok şeyi birleştirmek anlamına gelir. Bu operatör,
isset() fonksiyonuyla birlikte üçlü işlemi değiştirmek için kullanılır.
PHP'de Üçlü Operatör
PHP'nin " ? " sembolüyle gösterilen üçlü bir operatörü vardır . Üçlü operatör bir Boolean ifadesini karşılaştırır ve doğruysa ilk işleneni, aksi takdirde ikinci işleneni yürütür.
expr ? statement1 : statement2;
Örnek
Belirli bir değişkenin ayarlı olup olmadığını isset() fonksiyonu yardımıyla kontrol etmek için üçlü operatörü kullanalım. Bu fonksiyon, tanımlanmışsa true, tanımlanmamışsa false değerini döndürüyor.
<?php
$x = 1;
$var = isset($x) ? $x : "not set";
echo "The value of x is $var";
?>
Aşağıdaki çıktıyı üretecektir:
Şimdi "x" bildirimini kaldıralım ve kodu tekrar çalıştıralım.
<?php
# $x = 1;
$var = isset($x) ? $x : "not set";
echo "The value of x is $var";
?>
Kod artık aşağıdaki çıktıyı üretecektir:
The value of x is not set
Boş Birleştirme Operatörü
Null Coalescing Operatörü "??" sembolüyle gösterilir. isset() ile birlikte bir üçlü kullanmak için kullanışlı bir kısayol görevi görür. Varsa ve null değilse ilk işlenenini döndürür; aksi takdirde ikinci işlenenini döndürür.
$Var = $operand1 ?? $operand2;
İlk işlenen, belirli bir değişkenin null olup olmadığını (veya ayarlanıp ayarlanmadığını) kontrol eder. Eğer null değilse, ilk işlenen döndürülür, aksi takdirde ikinci işlenen döndürülür.
Örnek
Aşağıdaki örneğe bir göz atın.
<?php
# $num = 10;
$val = $num ?? 0;
echo "The number is $val";
?>
Aşağıdaki çıktıyı üretecektir:
Şimdi $num'ı 10'a ayarlayan ilk ifadenin yorumunu kaldırın ve kodu yeniden çalıştırın.
<?php
$num = 10;
$val = $num ?? 0;
echo "The number is $val";
?>
Artık aşağıdaki çıktıyı üretecektir:
Null Coalescing operatörünün kullanışlı bir uygulaması, istemci tarayıcısı tarafından bir kullanıcı adının sağlanıp sağlanmadığını kontrol etmektir.
Örnek
Aşağıdaki kod URL'den name değişkenini okur. URL'de name parametresi için bir değer varsa, kullanıcıya bir Hoş Geldiniz mesajı gösterilir. Ancak, yoksa kullanıcıya Guest denir.
<?php
$username = $_GET['name'] ?? 'Guest';
echo "Welcome $username";
?>
Bu "hello.php" betiğinin PHP sunucusunun htdocs klasöründe olduğunu varsayarak, URL'ye
Linkleri görebilmek için Turkmmo Forumuna
ÜYE olmanız gerekmektedir.
girin, tarayıcı aşağıdaki mesajı gösterecektir.
Eğer URL
Linkleri görebilmek için Turkmmo Forumuna
ÜYE olmanız gerekmektedir.
ise, tarayıcı aşağıdaki mesajı gösterecektir.
Null birleştirme operatörü, üçlü operatörün isset() fonksiyonunu kontrol etme özel durumu için bir yedek olarak kullanılır. Bu nedenle, aşağıdaki ifadeler benzer sonuçlar verir.
<?php
$username = isset($_GET['name']) ? $_GET['name'] : 'Guest';
echo "Welcome $username";
?>
Artık aşağıdaki çıktıyı üretecektir:
"??" operatörlerini aşağıda gösterildiği gibi zincirleyebilirsiniz.
<?php
$username = $_GET['name'] ?? $_POST['name'] ?? 'Guest';
echo "Welcome $username";
?>
Artık aşağıdaki çıktıyı üretecektir:
$name değişkeni GET veya POST yöntemi ile ayarlanmamışsa, bu kullanıcı adını Guest olarak ayarlayacaktır.