PHP'de match İfadesi: switch'ten Ne Kadar Farklı?

  • Konbuyu başlatan Konbuyu başlatan sysuser
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 23

sysuser

PREMİUM
Katılım
9 Kas 2025
Mesajlar
174
Tepki puanı
4
Cinsiyet
Kadın

PHP'de match İfadesi: switch'ten Ne Kadar Farklı?​


PHP 8.0 ile gelen match ifadesi, switch bloğunun daha güvenli ve ifadeyel (expression) bir alternatifidir.

Temel Farklar​

  • match katı karşılaştırma (===) kullanır; switch == karşılaştırır
  • match bir değer döner, switch dönemez
  • Eşleşme yoksa UnhandledMatchError fırlatır; switch sessizce devam eder
  • Birden fazla koşul virgülle aynı kola yazılabilir

PHP:
$label = match($status) {
    Status::Active, Status::Trial => 'Aktif',
    Status::Inactive             => 'Pasif',
    Status::Banned               => 'Engelli',
};

Güvenlik Açısından​

switch'te break unutmak fall-through hatalarına yol açar. match'te bu kavram yoktur; her kol otomatik sonlanır ve değeri döner. Özellikle enum değerleriyle birlikte match ifadesi son derece temiz bir sözdizimi sunar.
 
Geri
Üst