php - if或者switch的选择
PHP中文网
PHP中文网 2017-04-10 18:00:16
0
4
734

我要做一个查询订单的接口,比如 :
$r_type 可能为1234这四个值 1:食品 2:水果 3:香烟 4:酒水
$f_type 可能为12两个值 1:我购买的 2:我要卖的
分别对应8个数据表

怎么在接受这两个数据时确定数据表,if 或者 switch套switch,哪个方法的效率更高一点?或者有没有其他更高效的方法?

PHP中文网
PHP中文网

认证高级PHP讲师

reply all(4)
左手右手慢动作

拙见:
反过来 根据 $f_type 确认 $r_type switch

大家讲道理

可变函数
$r_type()。直接这样调用。
然后定义函数。function 1(){} function 2(){} function 3(){} function 4(){}

刘奇

第一种情况:

按照语义分析的话,四种情况是并行的,可以用switch来表示四种分支

第二种情况:

买和卖是两种相对的状态,对立或者相对的两种情况用if则会表示方便.

拙见,如果在性能上考虑两个情况,我不知道....
Peter_Zhu

最差的情况, 你的表名毫无规律。

$tableMap = array(
  '1-1' => '我购买的-食品',
  '1-2' => '我购买的-水果',
  '1-3' => '我购买的-香烟',
  '1-4' => '我购买的-酒水',
  '2-1' => '我要买的-食品',
  '2-2' => '我要买的-水果',
  '2-3' => '我要买的-香烟',
  '2-4' => '我要买的-酒水',
);
$tableName = $tableMap["{$f_type}-{$r_type}"];

好点的情况, 表名格式为(我要买的|我购买的)_(食品|水果|香烟|酒水)

$actionMap = array(1=>'我购买的',2=>'我要买的');
$catMap = array(1=>'食品',2=>'水果', 3=>'香烟', 4=>'酒水');
$tableName = $actionMap[$f_type].'_'.$catMap[$r_type];

最好的情况,我看懂了题主的意思~~~
总之, 我的宗旨是少用if,不用switch是我的宗旨~~~

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!