2017-03-02 44 views
-2

我有下面的代碼如何與多個條件寫條件運算符在PHP

<?php 
echo $show_li = ($show == 1) ? 'Verified' : '' ; 
echo $show_li = ($show == 2) ? 'Un-Verified' : '' ; 
echo $show_li = ($show == 3) ? 'Matrimonial' : '' ; 
echo $show_li = ($show == 4) ? 'Banned' : '' ; 
?> 

我希望寫在一行,但它不工作

echo $show_li = ($show == 1) ? 'Verified' : (($show == 2) ? 'Un-Verified' : (($show == 3) ? 'Matrimonial' : (($show == 4) ? 'Banned' : ''); 

請清除我在哪裏,我沒有錯誤。

+0

對於超過2個選項使用三元運算符通常被認爲是不好的做法,因爲它使代碼難以閱讀。檢查括號是否正確平衡。 –

回答

1

看起來你在發言結束時錯過了一些parens。這應該工作

echo $show_li = ($show == 1) ? 'Verified' : (($show == 2) ? 'Un-Verified' : (($show == 3) ? 'Matrimonial' : (($show == 4) ? 'Banned' : ''))); 

然而,這個代碼是有點難以解析的開發商。我會選擇一些比較容易閱讀的東西,例如使用開關盒的例子。

switch ($show) { 
    case 1: 
     $message = 'Verified'; 
     break; 
    case 2: 
     $message = 'Un-Verified'; 
     break; 
    case 3: 
     $message = 'Matrimonial'; 
     break; 
    case 4: 
     $message = 'Banned'; 
     break; 
    default: 
     $message = ''; 
} 

echo $message; 
+0

謝謝你這麼多兄弟。 –

0

你可以很容易地沒有所有的括號。

echo $show_li = $show == 1 
    ? 'Verified' 
    : $show == 2 
     ? 'Un-Verified' 
     : $show == 3 
      ? 'Matrimonial' 
      : $show == 4 
       ? 'Banned' 
       : ''; 

但正如詹姆斯所說,在三元聲明中很難讀懂這麼多條件。