doucanrui1735 2018-09-17 16:57
浏览 64
已采纳

运算符“?”和运算符AND评估

This evaluates to TRUE.

$A = TRUE;
$B = FALSE;

$result = ($A) AND ($B) ? true : false;

Why is the evaluation giving true, and how exactly is the evaluation done step by step?

Thanks

  • 写回答

2条回答 默认 最新

  • du5910 2018-09-17 17:06
    关注

    It's not related to the ternary. It's because = has a higher precedence than and. That means you're setting $result = ($A) and then everything after the and is irrelevant.

    ($B) ? true : false does evaluate to false, but because the assignment already happened in the first part of the expression, it's not assigned to anything. It's basically ignored.

    For a more straightforward example, try

    $result = true and false;
    

    $result will be true.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应