我要做一个查询订单的接口,比如 :$r_type 可能为1234这四个值 1:食品 2:水果 3:香烟 4:酒水
$f_type 可能为12两个值 1:我购买的 2:我要卖的
分别对应8个数据表
怎么在接受这两个数据时确定数据表,if
或者 switch套switch
,哪个方法的效率更高一点?或者有没有其他更高效的方法?
大家讲道理2017-04-10 18:02:16
可变函数
$r_type()。直接这样调用。
然后定义函数。function 1(){} function 2(){} function 3(){} function 4(){}
怪我咯2017-04-10 18:02:16
第一种情况:
按照语义分析的话,四种情况是并行的,可以用switch来表示四种分支
第二种情况:
买和卖是两种相对的状态,对立或者相对的两种情况用if则会表示方便.
拙见,如果在性能上考虑两个情况,我不知道....
天蓬老师2017-04-10 18:02:16
最差的情况, 你的表名毫无规律。
$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是我的宗旨~~~