大家猜猜这句 PHP 的结果是啥

2018 年 1 月 24 日
 j0hnj
$a = $b = $c = 0;

if ($a = 1 || $b = 2 && $c = 3){
    var_dump($a, $b, $c);
}

选项
A: 报错
B: int(0), int(2), int(3)
C: bool(true), int(0), int(0)
D: 其他

参考链接

3010 次点击
所在节点    PHP
6 条回复
slince
2018 年 1 月 24 日
$a = (1 || $b = 2 && $c = 3) )
true 0 0
Mitt
2018 年 1 月 24 日
代码水平问题 这种智力题还是少发吧
killeryang
2018 年 1 月 24 日
1 0 0
whileFalse
2018 年 1 月 24 日
结果是写这个代码的程序员被其 leader 臭骂一顿
savasun
2018 年 1 月 26 日
C
pantingwen
2018 年 1 月 29 日
如果运算符优先级相同,那运算符的结合方向决定了该如何运算。例如,"-"是左联的,那么 1 - 2 - 3 就等同于 (1 - 2) - 3 并且结果是 -4. 另外一方面,"="是右联的,所以 $a = $b = $c 等同于 $a = ($b = $c)。
结果就是 C

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/425514

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX