Selasa, 27 September 2022

Mengapa Match Lebih Unggul daripada Switch dalam PHP

Dalam artikel ini saya akan menjelaskan kenapa kita harus menggunakan Match dari pada Switch di PHP, Semenjak versi PHP 8.0, mereka telah mengeluarkan expresi match yang itu bisa dibilang lebih power dari pada switch.

Dalam artikel ini saya akan menjelaskan kenapa kita harus menggunakan Match dari pada Switch di PHP, Semenjak versi PHP 8.0, mereka telah mengeluarkan expresi match yang itu bisa dibilang lebih power dari pada switch.

Kenapa Match

Salah satu yang bisa kita bandingkan antara match dan switch adalah kualitasnya. Switch masih menggunakan 2 operator == sebagai perbandingannya. Yang itu berarti, dia akan menghasil kualitas yang bisa dibilang lemah. Karena tidak sekalian memeriksa tipe data nya.

Sementara Match, akan menggunakan perbandingan yang kualiatas lebih menjanjikan karena memeriksa dengan tipe datanya juga.

Mari Kita Mulai

Untuk penulisan match sendiri itu jauh lebih simpel dari pada Switch. Karena dengan switch kita perlu case namun dengan match itu tidak. Perhatikan contoh berikut:

$band = 'Nirvana';

return match($band) {
    'Nirvana' => "The band is {$band}",
    'Led Zeppelin' => "The band is {$band}",
    'Motörhead' => "The band is {$band}",
};

Tidak seperti Switch

Tadi saya menyinggung tentang kualiatas perbandingan antara switch == dan match ===. Perhatikan contoh berikut.

$version = 8.0;

switch ($version) {
    case '8.0':
        $compare = "No, it's not";
        break;
    case 8.0:
        $compare = "Yes, it is";
        break;
}

echo $compare; 

Sementara jika kita menggunakan match yang dia akan menggunakan 3 operator === yang akan menghasilkan mana yang paling benar, termasuk tipe datanya.

$version = 8.0;

return match($version) {
    '8.0' => "No, it's not",
    8.0 => "Yes, it is",
}; // Yes, it is

Mungkin Anda bertanya, bagaimana jika tidak ada pilihan di antara salah satunya. Apa yang terjadi? Well, dia akan menunjukkan kita error PHP Error:Unhandled match case.

$band = 'The Beatles';

return match($band) {
    'Nirvana' => "The band is {$band}",
    'Led Zeppelin' => "The band is {$band}",
    'Motörhead' => "The band is {$band}",
}; // PHP Error: Unhandled match case 'The Beatles'

Default Pattern

Namun, jika kita ingin lebih simpel, kita bisa menunjukkan default value jika pilihan tidak dalam list seperti:

$band = 'The Beatles';

return match($band) {
    'Nirvana' => "The band is {$band}",
    'Led Zeppelin' => "The band is {$band}",
    'Motörhead' => "The band is {$band}",
    default => 'No band selected'
};

Oia, kita bisa juga throw exception seperti:

return match($band) {
    ...
    default => throw new InvalidBandException()
};

Konsisi

Dari semua contoh di atas, tidak ada yang memakai match expression. Tetapi Anda tahu bahwa dengan menggunakan match ini, kita bisa membandingkan pilihan seperti:

$age = 33;

return match (true) {
    $age >= 50 => 'Wonder woman',
    $age >= 32 => 'Super girl',
    $age >= 16 => 'Not eligible, too young!',
    default => 'I do not know',
};

match expression bisa juga di gunakan untuk array. Perhatikan contoh berikut ini.

$band = ['Led Zeppelin', 'Nirvana'];

return match($band) {
    ['Nirvana', 'Led Zeppelin'] => "The band is not eligible",
    ['Led Zeppelin', 'Nirvana'] => "The band is eligible",
    ['Disturbed', 'Asking Alexandria'] => "Oh no!",
    ['The beatles', 'Bob Dylan'] => "The choice have to be a band.",
    ['The beatles', 'Led Zeppelin'] => "The choice have to be a band.",
    default => throw new InvalidBandException()
};

Else

Jika hanya satu statement, biasa di lakukan dengan if conditional. Namun dengan menggunakan match itu juga bisa.

$band = 'Nirvana';

return match($band) {
    'Nirvana' => "The band is eligible",
    default => 'Not eligible'
};

Referensi dari artikel ini bisa dilihat langsung di dokumentasi resmi PHP ya. Baik, semoga artikel ini bermanfaat, jangan lupa share and like jika Anda suka ya.

Karteil
Destinasi Utama Belajar Online dengan Format Tulisan yang Elegan
Kunjungi Sekarang