简明条件"?"

Coc*_*kin 1 php conditional

下面的第一个PHP脚本确实显示"正好七个",但另一个不显示.知道为什么吗?

---这一件作品---

<?
$num = 7;
echo ($num == 7) ? "exactly seven" : "not seven";
?>
Run Code Online (Sandbox Code Playgroud)

---这个没有---

<?
$num = 7;
echo ($num == 7) ? "exactly seven" : ($num > 7) ? "more than seven" : "less than seven";
?>
Run Code Online (Sandbox Code Playgroud)

Rya*_*yan 11

它被称为运营商的优先权.添加一些括号以确保以正确的顺序发生事情,例如

$num = 7;
echo ($num == 7) ? "exactly seven" : (($num > 7) ? "more than seven" : "less than seven");
Run Code Online (Sandbox Code Playgroud)

  • 澄清一点,在PHP中?运算符是*left*associative.不对,就像C和大多数其他语言一样.这非常违反直觉.只是不要窝他们. (3认同)