如何在PHP中使用三元运算符嵌套if和else语句?

时间:2012-11-23 00:31:01

标签: php

与使用这个三元运算符相混淆,如果不是,我可以轻松获得1级 e.g

($blah == $blah) ? blahblah : blahblahblah;

但如果条件是这样的话怎么办?

if($blah == blah1)
{ 
  echo $blah1;
}
else if($blah == blah2)
{
 echo $blah2;
}
else
{
 echo $blah;
}

如何使用三元运算符转换它?

4 个答案:

答案 0 :(得分:5)

<?php echo $blah == 'blah1' ? $blah1 : ($blah == 'blah2' ? $blah2 : $blah); ?>

注意else如何包含在括号中。这可以一次又一次地完成,尽管阅读会让人感到困惑。

答案 1 :(得分:3)

嵌套三元是一个坏主意。它们是为了简洁而提供的。如果您有嵌套条件,则根据定义,您没有简洁。

当你有一个简洁的陈述时,有些人甚至不喜欢他们的用法。就个人而言,我发现以下内容比基于if的替代方案更清晰,更易读。

echo $success ? 'Success' : 'Failure';

但我会毫不犹豫地做更复杂的事情。

答案 2 :(得分:1)

($ blah == $ blah1)? $ blah1:(($ blah == $ blah2)?$ blah2:$ blah);

答案 3 :(得分:0)

它会变成:

echo (($blah == $blah1) ? $blah1 : (($blah == blah2) ? $blah2 : $blah);