0

これを PHP で記述する最良の方法は何ですか?どの条件が失敗し、維持しやすいかを知っていますか? 複数の if else ステートメントに頼ることなく...

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");
}
4

3 に答える 3

1

これを試して

$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
}
于 2012-07-19T11:54:38.803 に答える
0

そのチェックを関数に移動すると、コードを見ているあなたや他の人にとって明確になり、メンテナンスが非常に簡単になります。次に例を示します。

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;
}

ifさらに説明が必要な場合は、それぞれにコメントを追加することもできます。

于 2012-07-19T11:50:25.390 に答える
0

私はこれを思いつきましたが、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");
于 2012-07-19T12:03:24.843 に答える