我使用相同的php页面进行不同的操作。所以条件明智,我正在做一些行动
哪一个表现出良好的表现?
This one if($catid){ .. some action } if($sub_catid){ .. some action } if($sub_sub_catid){ .. some action }
或者这个
if($catid){ .. some action }else{ if($sub_catid){ .. some action }else{ if($sub_sub_catid){ .. some action } } }
答案 0 :(得分:4)
首先,这两个有着截然不同的含义。如果所有这些变量都为TRUE,则第一个语句可以允许执行每个语句。第二个会在第一次找到正确的东西时“短路”。
我认为您正在寻找的是:
if($catid) {
.. some action
} else if($sub_catid) {
.. some action
} else if($sub_sub_catid) {
.. some action
}
奖励积分:更具可读性!
答案 1 :(得分:1)
两者都有不错的表现。如果检查一个简单的变量非常快。理论上第二个更快,但你几乎无法衡量差异。
然而,从语义上讲,它们并不相同。如果同时设置了$ catid和$ subcatid,则在第一种情况下,第一个和第二个动作都会被执行,而在第二个情况下,只执行第一个动作。所以要小心这样的“优化”。您可以使代码的速度提高一纳秒,但可能性较差,甚至可能会破坏!
答案 2 :(得分:-1)
如果你的条件不能同时成立 最好的方法是使用switch语句
switch($mycondition){
case 'category':
//Category statement here
break;
case 'sub_category':
//Another Statement here
break;
default:
//Other cases
}