Named arguments
Parametre adıyla değer geçen named arguments kullanımını öğrenirsin.
Named arguments (isimli argümanlar)
PHP 8.0 ile gelen named arguments, değeri parametre adıyla geçmeni sağlar: send_email(to: "alex@example.com", subject: "Merhaba").
Varsayılan değerli parametreleri atlayabilirsin: send_email(to: $x, html: true) gibi. subject atlanır, kendi varsayılanını kullanır.
Ad verdiğin için çağrı sırası önemsizleşir; çağrı kendini belgeler. Uzun parametre listelerinde özellikle faydalıdır.
Nullsafe operator (?->)
PHP 8.0 ile gelen ?-> operatörü, sol taraf null ise hata fırlatmak yerine null döner. Zincirleme erişimde güvenlik sağlar.
Örneğin $user?->profile?->avatar: $user veya profile null ise tüm ifade null olur; NullPointerException fırlatmaz.
Yalnızca okuma için kullanılır; atama yapamazsın. ?? ile birleştirip varsayılan değer de verebilirsin.
Uygulama Nullsafe ile avatar getir
user_avatar(?User $u): string yöntemini tanımla. $u?->profile?->avatar zinciriyle avatar al; yoksa ?? "default.png" ile varsayılanı döndür.
Aşağıdaki çağrı user: null ile yapılmalı ve default.png çıktısını vermeli.
Örnek çözümü göster
class Profile {
public string $avatar = "me.png";
}
class User {
public ?Profile $profile = null;
}
function user_avatar(?User $u): string {
return $u?->profile?->avatar ?? "default.png";
}
echo user_avatar(user: null);
Kendini test et
-
Named arguments kavramları
- name:
- parametre adıyla geçiş
- ?->
- null güvenli erişim
- skip
- varsayılanlı parametre atlanır
- by name
- sıra önemsizleşir
-
Nullsafe operatörü yaz
$avatar = $user____->profile->avatar;Cevabı göster
$avatar = $user?->->profile->avatar; -
HTML modunu açmak için doğru çağrı?
function send_email(string $to, string $subject = "Hi", bool $html = false) {}- send_email(to: "a@b.com", html: true)
- send_email("a@b.com", true)
- send_email(to: "a@b.com",, true)
- send_email(html: true)
Cevabı göster
send_email(to: "a@b.com", html: true) — Doğru. subject atlanır ve varsayılanını kullanır; html: true ile HTML modu açılır.