• 19-02-2023, 19:18:07
    #1
    Herkese selamlar,

    PHP yazan herkesin PHP 8'in nimetlerinden faydalanması ve kod geliştirme esnasında işlerinin kolaylaşması için bu seriyi yazıyorum.

    Herkesin bildiği ve - bazen - kullandığı bir Switch - Case yapısı olduğunu biliyoruz.

    PHP 8 ile beraber Match yapısı artık kullanılabiliyor ve fazlasıyla pratik. Ayrıca temiz kod yazmaya katkısı çok fazla.

    Bu seferki ders fazlasıyla kısa olacak çünkü kodu okuduğunuz gibi konuyu yakalayacaksınız, anlatmaya gerek kalmayacak

    Match Kullanımı
    <?php
    $yazi = "Deneme yazısı";
    $sayi = 5;
    $uc = 3;
    $sonuc = match ($sayi) {
        0 => "Sayı 0'a eşit",
        1..4 => "Sayı 1 ile 4 arasında",
        5,6,7,9,20 => "Sayı 5,6,7,9 veya 20 sayısına eşit",
        $test, $ali,$veli => fonksiyonAdi(),
        str_contains($yazi, 'deneme') || str_contains($yazi, 'yazı') => "Metin eşleşmesi var",
        $uc >= 5 => hataVer(),
        default => "Hiçbiri ile eşleşmedi"
    };
    echo $sonuc;
    ?>
    Burada kodumuza dikkatli bakarsak aşağıdakileri sırası ile görebiliriz:
    1. Doğrudan değeri yazıp "=>" ifadesini kullanarak $sonuc değişkenine ne atanacağını return edebiliyoruz.
    2. Sayısal değerler eğer ki sıralı ise her biri için tek tek yazmak yerine 1..40 (1 ile 40 arası sayılar) gibi kullanabiliyoruz
    3. Sayısal veya değil farketmeksizin aynı sonucu döndürecek değerleri doğrudan virgül ile ayırarak birden fazla koşulu tek satırda kontrol edebiliyoruz
    4. Doğrudan değişken eşleşmelerini sıralı olarak gene yazabiliyoruz
    5. Filtrelemeler kullanarak && ve || iÅŸaretleri ile ekstra birleÅŸtirmeler yapabiliyoruz
    6. if içinde kullanılan klasik >, < gibi ifadelerimizi hala kullanabiliyoruz
    7. Tabiki de, default değer döndürebiliyoruz
    Eğer ki kodunuzu yazarken Route veya Masterpage gibi alanlarda Switch-Case yapınız var ise ve PHP 8+ bir sunucu/hosting'te çalışıyor iseniz kullanılmasını şiddetle tavsiye ettiğim bir özellik kendisi. PHP.net Match Sayfası

    Bol Åžanslar ve iyi geliÅŸtirmeler
    • HasanAYT
    • ahmtcn37
    HasanAYT ve ahmtcn37 bunu beÄŸendi.
    2 kiÅŸi bunu beÄŸendi.
  • 19-02-2023, 19:35:18
    #2
    Elinize sağlık.