Php 多条件语句
用PHP写这篇文章的最好方法是什么,这样我就知道哪种情况会失败,并且很容易维护?无需使用多个if-else语句Php 多条件语句,php,conditional-operator,Php,Conditional Operator,用PHP写这篇文章的最好方法是什么,这样我就知道哪种情况会失败,并且很容易维护?无需使用多个if-else语句 if ((!$titleBlockPresent || !$leadBlock || ($allDoubleBlockCount !=2 || $allDoubleBlockCount!=1) ||$countFirstSmallShowBlocks !=2 ||$countSecondSmallShowBlocks !=2 ) && !$contentNotAvail
if ((!$titleBlockPresent || !$leadBlock || ($allDoubleBlockCount !=2 || $allDoubleBlockCount!=1) ||$countFirstSmallShowBlocks !=2 ||$countSecondSmallShowBlocks !=2 ) && !$contentNotAvailableMessage)
{
$this->fail("Block missing in the horizontal list of blocks on the non live carousel");
}
如果将该复选框移动到函数中,您和查看代码的任何人都会很清楚,并且很容易维护,例如:
function tester($var1, $var2, $var3)
{
if (!$var1)
{
$this->fail("error1");
return FALSE;
}
if (!$var2)
{
$this->fail("error2");
return FALSE;
}
if (!$var3)
{
$this->fail("error3");
return FALSE;
}
return TRUE;
}
如果需要进一步澄清,您还可以在每个中添加注释。试试这个
$shouldFail = FALSE;
switch(TRUE){
case !titleBlockPresent:
echo "No title block present<br/>";
$shouldFail = TRUE;
case !$leadBlock:
echo "No lead block<br/>";
// the rest of the code
}
$shouldFail=FALSE;
开关(真){
案例!标题栏当前:
回显“不存在标题栏
”;
$shouldFail=TRUE;
案例!$leadBlock:
回音“无导线阻塞
”;
//代码的其余部分
}
我刚刚想到了这个,但注意到它与GeoPhoenix的答案非常相似,相反,可能也值得一看:
$bFail = false;
if(!$bFail && $contentNotAvailableMessage) $bFail = true;
if(!$bFail && !$titleBlockPresent ) $bFail = true;
if(!$bFail && !$leadBlock ) $bFail = true;
if(!$bFail && $allDoubleBlockCount != 2) $bFail = true;
if(!$bFail && $allDoubleBlockCount != 1) $bFail = true;
if(!$bFail && $countFirstSmallShowBlocks != 2) $bFail = true;
if(!$bFail && $countSecondSmallShowBlocks != 2) $bFail = true;
if($bFail) $this->fail("Block missing in the horizontal list of blocks on the non live carousel");
简化你的逻辑,这样你就不会一次检查7个条件。你要求最好的方法,但在你的问题中你说“不要使用多个if-else语句”。我认为底线是大多数(或许多)人认为多个语句是最好的方法。