【问题标题】:Unexpected result from double ternary [duplicate]双三元的意外结果[重复]
【发布时间】:2023-03-05 20:47:01
【问题描述】:

下面的结果是$c 得到'a',而直觉说它应该得到tie。这是怎么回事?

$a = 3;
$b = 3;
$c = $a === $b ? 'tie' : $a > $b ? 'a' : 'b';
var_dump($c); // shows a

【问题讨论】:

标签: php


【解决方案1】:

你需要把代码放在()之间

    $a = 3;
    $b = 3;
    $c = ($a === $b ? 'tie' : ($a > $b ? 'a' : 'b'));

【讨论】:

  • 看来我们只需要一组分组,因为这会为所有情况产生正确的结果:$c = $a === $b ? 'tie' : ($a > $b ? 'a' : 'b');
  • @MajidFouladpour 是的,你只需要一个,但对我来说这样更具可读性
【解决方案2】:
$a = 3;
$b = 3;
$c = ($a === $b) ? 'tie' : (($a > $b) ? 'a' : 'b');
var_dump($c);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多