2017-03-02 89 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' 
       : ''; 

但正如詹姆斯所说,在三元声明中很难读懂这么多条件。