2017-02-09 42 views
1

我想了解一個簡單的/更好的方式來編寫這樣的PHP條件語句。如何簡化這個PHP條件語句?

<?php if (count($foo_bar) > 1) : ?> 

    <div class="myDiv1"> 
     Hello! 
    </div> 

<?php endif; ?> 

<?php if (count($foo_bar) == 1) : ?> 

    <div class="myDiv2"> 
     Goodbye! 
    </div> 

<?php endif; ?> 

尋找例子,並解釋爲什麼它可能會更好。謝謝!

+1

嵌套三元組。棘手但邪惡 –

+1

@KhorneHoly雖然你說得對,CR會很樂意回顧工作代碼,但這完全是非主題,因爲它是示例代碼。 CR僅查看實際的實現。 – Kaz

+0

@Kaz感謝您提供這些額外信息,我不是那裏的活躍用戶,所以我不熟悉那裏的主題。 – KhorneHoly

回答

1

簡單地說在這種特定情況下你不需要第二個如果,因爲它可以用一個簡單的if else

<?php if (count($foo_bar) > 1) : ?> 

    <div class="myDiv1"> 
     Hello! 
    </div> 

<?php else: ?> 

    <div class="myDiv2"> 
     Goodbye! 
    </div> 

<?php endif; ?> 
+0

魔鬼的擁護者,但是如果count($ foo_bar)是0呢? –

+0

我想知道,但作爲現有的代碼,看到我的cateat(_在這個具體的情況_)沒有什麼可以應付這種情況要麼 – RiggsFolly

+0

公平點,我只是認爲,如果行爲是「什麼都不做」,它需要保持無所事事。就像我說過魔鬼的擁護者一樣,如果沒有$ foo_bar被設置爲可數值,我真的不知道要使用它的位置 –

2
<?php 
    $class = 'myDiv2'; 
    $msg = 'GoodBye!'; 
    if (count($foo_bar) > 1) { 
     $class = 'myDiv1'; 
     $msg = 'Hello!'; 
    } 
?> 

    <div class="<?php echo $class; ?>"> 
    <?php echo $msg; ?> 
    </div> 
1

嘗試使用下面的elseif。比2條語句更簡潔一點。

<?php if (count($foo_bar) == 1) : ?> 
<div class="myDiv2"> 
    Goodbye! 
</div> 
<?php  elseif(count($foo_bar) > 1): ?> 
<div class="myDiv1"> 
    Hello! 
</div> 
<?php  endif; ?> 
+0

格式不正確,那麼您可以執行其他操作,而不是第二種格式,因此不是所有的代碼都顯示出來。 Naincy的回答雖然比較好,但我的反覆元素仍然太多 –

1

首先來完成,你應該count函數只有一次。 其次,減少重複的HTML塊。

<?php 
$countFooBar = count($foo_bar); 
if ($countFooBar == 1){ 
    $message = 'Goodbye! !'; 
    $cssClass = 'class1'; 
}elseif($countFooBar > 1){ 
    $message = 'Hello!' 
    $cssClass = 'class2'; 
} 
?> 

<div class="<?php echo $cssClass ?>"> 
    <?php echo $message; ?> 
</div> 
+0

除了好的或壞的原因,在DIV中使用的類也是不同的在問題中! – RiggsFolly

+0

現在看起來非常像@Naincy答案 – RiggsFolly