【问题标题】:Two if statements using ternary condition使用三元条件的两个 if 语句
【发布时间】:2011-08-03 10:37:24
【问题描述】:

标题似乎令人困惑,但这是我第一次使用三元条件。我读过三元是用来制作内联 if/else 语句的。使用 no else 是不可能的。是真的吗?

我想用三元条件来改变这个练习

if (isset($_SESSION['group']
{
if ($_SESSION['item'] == 'A')
{
echo "Right!";
}
}

它只有两个 if 语句。第二个 if 与另一个嵌套。我也读过,要使三元不存在其他可能,只需将其设置为 null 或空字符串。

【问题讨论】:

  • 您使用哪种编程语言?
  • @Frank Schmitt:看起来像(格式错误的)PHP。
  • 抱歉,这里不适合使用三元条件运算符。坚持使用 if 语句,但使用 && 而不是嵌套。

标签: php ternary


【解决方案1】:

这是一个不好的例子,因为您可以在嵌套的 if 上使用 AND 运算符:

$result = isset($_SESSION['group'] && $_SESSION['item'] == 'A' ? true : false;

当然你也可以嵌套三元运算符:

$result = isset($_SESSION['group'] ? ( $_SESSION['item'] == 'A' ? true : false ) : false;

有回声

echo  isset($_SESSION['group'] ? ( $_SESSION['item'] == 'A' ? "Right!" : "false" ) : "false";

【讨论】:

  • 你还不如$result = isset($_SESSION['group']) && $_SESSION['item'] == 'A';
  • 用户:跨度>
【解决方案2】:
echo (isset($_SESSION['group']) && $_SESSION['item'] == 'A') ? "Right" : ""

更好(可读,可维护),使用:

if (isset($_SESSION['group']) && $_SESSION['item'] == 'A')
{
   echo "Right!";
}

【讨论】:

    【解决方案3】:
    isset($_SESSION['group'] ? (if ($_SESSION['item'] == 'A') ? echo "Right" : null) : null
    

    试试这个,我认为它可能有效 =]。

    如需进一步了解 Java 中的三元条件/无论您使用什么,请查看 http://www.devdaily.com/java/edu/pj/pj010018

    【讨论】:

    • 不,echo 必须在外面。
    【解决方案4】:

    您可以嵌套两个三元语句,如本例:

    echo (isset($_SESSION['group']))?($_SESSION['item']== 'A')?'Right!':null:null;
    

    【讨论】:

      【解决方案5】:

      您知道您也可以这样做吗? (isset($_SESSION['group']) && ($_SESSION['item']=='A')) &&($result$c= 1);echo (isset($_SESSION['group']) && ($_SESSION['item']=='A')) ? 'Hello!':'World!';

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-06
        • 2011-08-27
        • 1970-01-01
        • 2011-08-26
        • 1970-01-01
        • 2011-09-12
        • 1970-01-01
        • 2012-02-12
        相关资源
        最近更新 更多