84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
我要做一个查询订单的接口,比如 :$r_type 可能为1234这四个值 1:食品 2:水果 3:香烟 4:酒水$f_type 可能为12两个值 1:我购买的 2:我要卖的分别对应8个数据表
$r_type 可能为1234这四个值 1:食品 2:水果 3:香烟 4:酒水
$f_type 可能为12两个值 1:我购买的 2:我要卖的
怎么在接受这两个数据时确定数据表,if 或者 switch套switch,哪个方法的效率更高一点?或者有没有其他更高效的方法?
if
switch套switch
认证高级PHP讲师
拙见:反过来 根据 $f_type 确认 $r_type switch
可变函数$r_type()。直接这样调用。然后定义函数。function 1(){} function 2(){} function 3(){} function 4(){}
第一种情况:
按照语义分析的话,四种情况是并行的,可以用switch来表示四种分支
第二种情况:
买和卖是两种相对的状态,对立或者相对的两种情况用if则会表示方便. 拙见,如果在性能上考虑两个情况,我不知道....
最差的情况, 你的表名毫无规律。
$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是我的宗旨~~~
拙见:
反过来 根据 $f_type 确认 $r_type switch
可变函数
$r_type()。直接这样调用。
然后定义函数。function 1(){} function 2(){} function 3(){} function 4(){}
第一种情况:
第二种情况:
最差的情况, 你的表名毫无规律。
好点的情况, 表名格式为(我要买的|我购买的)_(食品|水果|香烟|酒水)
最好的情况,我看懂了题主的意思~~~
总之, 我的宗旨是少用if,不用switch是我的宗旨~~~