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.
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.
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}",
};
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'
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()
};
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()
};
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.
Let's start living like no one can help us in any event, so that when we are helped in certain times, it becomes a plus in itself.