match ifadesi
match ifadesi ile switch'ten daha öz ve güvenli koşullu yazmayı öğrenirsin.
match ifadesi nedir?
PHP 8.0 ile gelen match bir ifadedir: bir değer üretir ve değişkene atayabilirsin. switch ise bir deyim olup değer döndürmez.
match katı (===) karşılaştırma yapar; tür çevirimii yapmaz. Kollar virgülle ayrılır ve => ile sonucu bağlanır.
Bir match bütün değerleri kapsamak zorundadır. Karşılanmayan değer girerse hata fırlatır; default kolu bunu engeller.
default kolu ve never dönüş türü
match'ın default kolu eşleşmeyen tüm değerleri yakalar. Yazmazsan ve eşleşmeyen değer gelirse UnhandledMatchError fırlatır.
Bir kolu hata fırlatmak üzere yazabilirsin: default => throw new \InvalidArgumentException(). Bu durumda match değer döndürmez.
PHP 8.1'de never dönüş türü gelir. Hiç değer döndürmeyen (her zaman hata fırlatan veya exit yapan) yöntemleri imzalar. Bu türü kullanan yöntemden sonra kod çalışmaz; derleyici bunu bilir.
Uygulama HTTP durum kodu etiketi
http_status_label(int $code): string yöntemini match ile yaz. 200 için "Tamam", 404 için "Bulunamadı", 500 için "Sunucu hatası", default için "Bilinmiyor" dönsün.
Aşağıdaki çağrı çalıştığında Bulunamadı çıktısını vermeli.
Örnek çözümü göster
function http_status_label(int $code): string {
return match($code) {
200 => "Tamam",
404 => "Bulunamadı",
500 => "Sunucu hatası",
default => "Bilinmiyor",
};
}
echo http_status_label(404);
Kendini test et
-
match ifadesinin özelliği nedir?
- Yalnızca tam sayılarla çalışır
- Büyük/küçük harf duyarsız karşılaştırır
- Otomatik olarak dizi döndürür
- switch'ten farklı olarak değer döndürür ve === kullanır
Cevabı göster
switch'ten farklı olarak değer döndürür ve === kullanır — Doğru. match bir ifade olarak değer döndürür ve katı (===) karşılaştırma yapar; switch'ten farklı olarak.
-
match kolunu tamamla
$status = match($code) { 200 => "OK", 404 => ____, default => "Bilinmiyor", };Cevabı göster
$status = match($code) { 200 => "OK", 404 => "Bulunamadı", default => "Bilinmiyor", }; -
match kavramlarını eşleştir
- match
- ifade döndüren koşul
- default
- eşleşmeyen değerler için
- =>
- koşul ile sonucu bağlar
- ===
- katı eşitlik karşılaştırması