详解php中开关你可能不知道的事

  

开关的常规用法是传递一个参数然后逐一跟案例对比;

switch (变量),{   ,,,case “价值”:   ,,,,,,,//,代码…   ,,,,,,,休息;   ,,,,   ,,,默认值:   ,,,,,,,//,代码…   ,,,,,,,休息;   }

在分支比较多的时候,开关要比if  else 如果好用,比如,

如果(“价值”){   ,,,//,代码…   }else 如果(value2) {   ,,,//,代码…   }else 如果(value3) {   ,,,//,代码…   }else 如果(' value4 ', | |, value5) {   ,,,//,代码…   }

用开关来写的话就是这样的,可以传递真的,每个案例就相当于一个else 如果;

switch (“价值”),{   ,,,case “value1”:   ,,,,,,,//,代码…   ,,,,,,,休息;   ,,,case “value2”:   ,,,,,,,//,代码…   ,,,,,,,休息;   ,,,case “value3”:   ,,,,,,,//,代码…   ,,,,,,,休息;   ,,,case “value4”:   ,,,case “value5”:   ,,,,,,,//,代码…   ,,,,,,,休息;   }

但是需要注意的是开关是松比较,也就是说如下这段代码每个案件都能满足;

switch  (123), {   ,,,case “字符串”:   ,,,,,,,//,代码…   ,,,,,,,休息;   ,,,case “string2相等”:   ,,,,,,,//,代码…   ,,,,,,,休息;   ,,,case “string3”:   ,,,,,,,//,代码…   ,,,,,,,休息;   }

解决这个问题的办法就是在传参的时候转为字符串字符串型;

switch  (strval (123)), {   ,,,case “字符串”:   ,,,,,,,//,代码…   ,,,,,,,休息;   ,,,case “string2相等”:   ,,,,,,,//,代码…   ,,,,,,,休息;   ,,,case “string3”:   ,,,,,,,//,代码…   ,,,,,,,休息;   }

详解php中开关你可能不知道的事


详解php中开关你可能不知道的事