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