Anahtarlara erişim
Anahtarla değere erişmeyi ve var olmayan anahtar davranışını öğrenirsin.
Anahtarla değere erişim
İlişkisel dizideki bir değere anahtarla erişirsin: $user["name"] gibi. Köşeli parantez içine anahtarı çift tırnakla yazarsın. Erişim yeni bir değer okur; diziyi değiştirmez.
Anahtar dizide yoksa PHP bir uyarı verir ve null döner. Bu yüzden bilinmeyen anahtarlara erişirken dikkatli olmalısın; sonraki adımda güvenli yolunu göreceğiz.
?? operatörü (null coalesce)
Eksik anahtara güvenli erişim için ?? (null coalesce) operatörünü kullanırsın. $a["x"] ?? "y" yazdığında anahtar varsa ve null değilse değeri döner; yoksa ya da null ise sağdaki "y" döner. Uyarı da verilmez.
Bu desen özellikle yapılandırma ve kullanıcı verisi için kullanışlıdır: $config["timeout"] ?? 30 gibi. Öntanımlı değeri tek satırda vermiş olursun.
Uygulama Yapılandırma ve öntanımlı tema
$config ilişkisel dizisini theme ve lang anahtarlarıyla oluştur; değerleri dark ve tr olsun. echo ile theme değerini yazdır; anahtar olmasaydı "light" öntanımlı değeri görünecek biçimde ?? kullan.
Örnek çözümü göster
Önce $config dizisini tanımla; sonra echo ($config["theme"] ?? "light") . "\n"; yaz.
Örnek çözüm:
<?php
// Ayar dizisi ve varsayılan tema
$config = ["theme" => "dark", "lang" => "tr"];
echo ($config["theme"] ?? "light") . "\n";
Kendini test et
-
Aşağıdaki kod ne yazdırır?
$user = ["name" => "Ayşe"]; echo $user["email"] ?? "yok";- Ayşe
- null
- yok
Cevabı göster
yok — Doğru. "email" anahtarı yok; ?? sağdaki "yok" değerini verir.
-
Öntanımlı değeri ekle
echo $user["email"] ____ "yok";Cevabı göster
echo $user["email"] ?? "yok"; -
Anahtarı değeriyle eşleştir
- name
- Ayşe
- age
- 28
- yok