PHP Null Coalescing Operator

?? (null coalescing operator), Bir değerin null olup olmadığını kontrol etmek için kullanılır. Eğer operatörün sol tarafındaki ifade null ise, sağ tarafındaki değeri döndürür. Eğer sol tarafındaki ifade null değilse, bu değeri döndürür.

?? Operatörünün Temel Kullanımı:

$value = $var ?? ‘default value’;

  • Eğer $var tanımlı ve null değilse, $value değeri $var olur.
  • Eğer $var tanımlı değilse ya da null ise, $value değeri ‘default value’ olur.

?? Operatörünün Amacı:

  • isset() fonksiyonuna bir alternatif sağlar. Daha kısa ve daha okunabilir bir yazım sunar.
  • ?? operatörü, isset() gibi sadece değişkenin var olup olmadığını kontrol etmekle kalmaz, aynı zamanda null olup olmadığını da kontrol eder.

Örnekler:

1. Temel Kullanım:

$username = $_POST[‘username’] ?? ‘Guest’;

// Eğer $_POST[‘username’] tanımlıysa ve null değilse onu döndürür, aksi halde ‘Guest’ döner.

2. Daha Önceki isset() Kullanımına Alternatif:

PHP 7.0’dan önce, bu tür kontroller genellikle isset() fonksiyonu ile yapılırdı:

$username = isset($_POST[‘username’]) ? $_POST[‘username’] : ‘Guest’;

// Eğer $_POST[‘username’] tanımlıysa onu döndürür, aksi halde ‘Guest’ döner.

?? operatörü, bu ifadeyi daha kısaltılmış ve okunabilir hale getirir:

$username = $_POST[‘username’] ?? ‘Guest’;

3. Birden Fazla Değişkeni Kontrol Etme:

?? operatörü ile birden fazla değeri kontrol edebilirsin. Sol taraftaki değer null ise, bir sonraki değere geçilir:

$username = $input[‘username’] ?? $input[‘default_username’] ?? ‘Guest’;

Bu ifade şu anlama gelir:

  • Eğer $input[‘username’] tanımlı ve null değilse, onu kullan.
  • Eğer $input[‘username’] null ise, $input[‘default_username’] kontrol edilir.
  • Eğer her iki değer de null ise, ‘Guest’ değeri kullanılır.

Avantajları:

  1. Kod Kısaltması:
    • ?? operatörü, isset() ve ternary (üçlü) operatör kullanımını daha kısa ve okunabilir bir hale getirir.
  2. Null Değerlerini Hızlıca Kontrol Etme:
    • Bir değerin tanımlı olup olmadığını ve null olup olmadığını hızlıca kontrol etme imkanı sağlar.
  3. Zincirleme Kullanımı:
    • Birden fazla değeri kontrol etmek ve ilk geçerli değeri almak için zincirleme kullanılabilir.

?? (null coalescing operator), güçlü bir operatördür ve bir değerin null olup olmadığını kontrol etmek için basit ve okunabilir bir çözüm sunar. Bu operatör, eski yöntemlere kıyasla daha kısa ve temiz bir yazım sağlar ve null kontrolü için ideal bir yaklaşımdır.