2015-09-02 36 views
0

「elseif」我想檢查是否有超過4個元素,並給所有元素「col-md-5ones」的類,但沒有任何反應。Elseif條件將不起作用

if(sizeof($elements)>0) { 
    $size = ceil(12/sizeof($elements)); 
    foreach($elements AS $element) { 
     echo '<article class="col-md-'.$size.'">'.$element.'</article>'; 
    } 
} 

elseif(sizeof($elements)==5) { 
    foreach($elements AS $element) { 
     echo '<article class="col-md-5ones">'.$element.'</article>'; 
    } 
} 

這說明我正確的元素計數:

echo sizeof($elements); 

,所以我不明白爲什麼我不能在這裏做一個ELSEIF條件?

+0

你嘗試過改變'ELSEIF(的sizeof($元素)== 5)''通過elseif的(的sizeof($元素)> 4)'。 如果你有4個以上的項目,你會要求添加一個類,但是如果你添加5,你的條件只會被檢查。 此外,你首先檢查'$ elements'是否大於0。否則,如果你有超過1個元素。 我發佈了一個答案。 –

回答

1

你的第一個條件檢查,你仍然會在第一個if()條件。

if(sizeof($elements) > 0 && sizeof($elements) <= 4) { 
    $size = ceil(12/sizeof($elements)); 
    foreach($elements AS $element) { 
     echo '<article class="col-md-'.$size.'">'.$element.'</article>'; 
    } 
} 

elseif(sizeof($elements) > 4) { 
    foreach($elements AS $element) { 
     echo '<article class="col-md-5ones">'.$element.'</article>'; 
    } 
} 
1

僅當第一個條件爲TRUE時,纔將第二個條件評估爲TRUE。這意味着其他部分永遠不會執行。

-1

我認爲這是因爲這兩個條件之間的衝突。

如果$元素是大於0

在這種邏輯,如果$元素值爲4

-1

使用下面的代碼

if(sizeof($elements)>0) { 
    $size = ceil(12/sizeof($elements)); 

    if(sizeof($elements) > 4) { 
     foreach($elements AS $element) { 
      echo '<article class="col-md-5ones">'.$element.'</article>'; 
     } 
    } 
} 
+0

此僅有代碼的解決方案不正確。它僅在尺寸爲5時輸出。 –

+0

感謝您指出。編輯它 –

+0

這仍然跳過''col-md-'。 $ size'的情況。 –