84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我要做一个查询订单的接口,比如 :$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是我的宗旨~~~