我应该使用ELSEIF或多个if引导的从句
我有这个简单,如果代码:我应该使用ELSEIF或多个if引导的从句
哪个更好,与esleif做或做两个独立的IFS?
if(is_home() && $currentpage == ''){
$catname = 'cars';
} elseif(is_home() && $currentpage != '' && is_page_template('models.php')){
$catname = 'newcars';
}
两个separete if引导的从句:
if(is_home() && $currentpage == ''){
$catname = 'cars';
}
if(is_home() && $currentpage != '' && is_page_template('models.php')){
$catname = 'newcars';
}
请问的订单,如果事项?如果在第一次之前我能放置第二个吗? 这个问题应该是PHP如何将条件从更具体到更一般的对待? 你应该总是从更具体的开始,一直工作到一般? 或PHP可以排序他们?
,因为我已经配发,如果的:)
这取决于你想要什么样的行为的第二个版本会为我简单:
如果使用elseif
,只有第一匹配块将被执行。
$foo = $bar = true;
if($foo) { /* executed */ }
elseif($bar) { /* not executed */ }
当使用单独的if
列有:,所有匹配块将执行:
$foo = $bar = true;
if($foo) { /* executed */ }
if($bar) { /* also executed */ }
如果条件是不同的,即只有一个是有史以来真的,那并不重要。但是,通过使用elseif
,您可以避免无用的检查,因为只要一个条件评估为true,就不需要检查其他条件。
这就是我想知道的,所以如果第一个是一个特定的查询,第二个是更一般的,如果我使用两个ifs,那么一般可以覆盖更具体的一个 – webmasters 2012-08-07 23:20:13
好的例子!简单但非常丰富的 – 2012-08-07 23:41:26
if (is_home()) {
if ($currentpage == '') {
$catname = 'cars';
}
else if (is_page_template('models.php')) {
$catname = 'newcars';
}
}
这将如何帮助OP? – 2012-08-07 23:21:10
我喜欢这种方式,为代码带来更多逻辑 – webmasters 2012-08-07 23:21:39
我认为它很丑,因为它增加了更多的嵌套代码。它根本不回答这个问题。 – Jocelyn 2012-08-07 23:42:53
为了脚本优化,我会推荐elseifs,以避免运行多余的不必要的条件。
如果可能的话,我会建议使用switch/case语句(在这里你可以检查单个变量的值)。从减少混乱的角度来看,它们更干净,更容易维护。多
一个问题if语句(而不是ELSEIF语句)是它使调试问题更加复杂。你怎么知道第二个陈述不是凌驾于第一个陈述上,或者你的条件逻辑对每一个陈述都是正确的?使用多个if增加了一个条件覆盖另一个的功能的可能性。开始在这些if语句中添加多个变量,它会开始伤害你的大脑。
我会去的,
if(is_home()) {
if($currentpage == '') {
$catname = 'cars';
}
elseif(is_page_template('models.php')) {
$catname = 'newcars';
}
}
否则IFS是if语句相互排斥的。多个if不是。 – 2012-08-07 23:18:16