İlan
04 Haz 2026 20 çevrimiçi üye Duyurular
Ana Sayfa Web Geliştirme
Ana Sayfa Forum Web Geliştirme PHP 8'de Yeni Kontrol Seçenekleri: Gelişmiş E...
İlan Yan banner placeholder

PHP 8'de Yeni Kontrol Seçenekleri: Gelişmiş Eşleştirme Olayları

reyhanirracim 22.04.2026 22:14 651 görüntüleme 3 cevap
Son Mesaj
reyhanirracim
Üye
Üye
Katılım12 Şub 2026
Konular6
Mesajlar77
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
22.04.2026 22:14 #1

1. Giriş

PHP 8, geleneksel switch yapısına modern bir alternatif olan match ifadesini tanıttı.
Bu yeni yapı, daha kısa, daha güvenli ve daha tahmin edilebilir bir kontrol akışı sağlar.

2. switch ile Karşılaştırma

Önce klasik switch yapısına bakalım:

Kod:
$status = 404;

switch ($status) {
    case 200:
        $message = 'Başarılı';
        break;
    case 404:
        $message = 'Bulunamadı';
        break;
    case 500:
        $message = 'Sunucu Hatası';
        break;
    default:
        $message = 'Bilinmeyen durum';
}

echo $message;

Bu yapı çalışır, ancak bazı dezavantajları vardır:

break yazmayı unutmak hataya neden olabilir.
Gevşek (loose) karşılaştırma yapar (== kullanır, === değil).
switch bir değer döndürmez; yalnızca kod blokları çalıştırır.

3. match İfadesi Nedir?


match, switch’in daha güçlü, tip güvenli ve ifadeye dayalı versiyonudur.
Yani, match bir değer döndürür ve tip karşılaştırması (strict comparison) (===) yapar.

Örnek:

Kod:
$status = 404;

$message = match ($status) {
    200 => 'Başarılı',
    404 => 'Bulunamadı',
    500 => 'Sunucu Hatası',
    default => 'Bilinmeyen durum',
};

echo $message;

Çıktı:

Bulunamadı​

4. Match Sözdizimi

Genel biçim:

Kod:
$result = match (ifade) {
    durum1 => sonuç1,
    durum2 => sonuç2,
    default => varsayılanSonuç,
};

Özellikleri:

match bir değer döndürür → değişkene atanabilir.
break gerekmez.
Katı karşılaştırma (===) kullanır.
Her durum bir ifade (expression) döndürür (blok değil).

5. Birden Fazla Durum (Case) Tanımlama

Birden fazla durumu aynı sonuca bağlayabilirsiniz:

Kod:
$message = match ($status) {
    200, 201, 202 => 'Başarılı',
    400, 401, 403 => 'İstemci Hatası',
    500, 501 => 'Sunucu Hatası',
    default => 'Bilinmeyen durum',
};

6. İfadelerde Değer Dönüşü

match ifadeleri, yalnızca sabit değerleri değil, herhangi bir ifade sonucunu döndürebilir:

Kod:
$age = 20;

$type = match (true) {
    $age >= 65 => 'Yaşlı',
    $age >= 18 => 'Yetişkin',
    $age >= 13 => 'Genç',
    default => 'Çocuk',
};

echo $type; // "Yetişkin"

Burada $age değişkeni doğrudan değil, koşulların sonucu karşılaştırılır.​
reyhanirracim
Üye
Üye
Katılım12 Şub 2026
Konular6
Mesajlar77
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
23.04.2026 07:05 #2
Paylaşım için teşekkürler
cihant
Üye
Üye
Katılım26 Mar 2026
Konular6
Mesajlar66
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
26.04.2026 00:25 #3
Paylaşım için teşekkürler.
omerk2
Üye
Üye
Katılım26 Mar 2026
Konular5
Mesajlar39
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
29.04.2026 09:14 #4
güzel haber
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
İlan Yan banner placeholder