switch หรือ if ใช้อย่างไหนดี
ในการเปรียบเทียบด้วย if ในแต่ละขั้นตอนของการเปรียบเทียบจะมีการเรียกใช้ฟังก์ชั่น some_func() ทุกครั้ง
if(some_func() == 1) {
...
} elseif (some_func() == 2) {
...
}
ในกรณีของ switch ฟังก์ชั่น some_function() จะถูกประมวลผลเพียงครั้งเดียวและนำไปเปรียบเทียบได้เลย
switch (some_func()) {
case 1: ... break;
case 2: ... break;
}
หากจำเป็นต้องใช้งานฟังก์ชั่น if แทนการใช้ switch (อาจเป็นเพราะเห็นว่าฟังก์ชั่น if อ่านได้ง่ายกว่า) เราอาจใช้การรับค่าจากฟังก์ชั่นก่อน แล้วถึงนำไปเปรียบเทียบก้ได้
$var = some_function();
if($var == 1) {
...
} elseif ($var == 2) {
...
}