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

2018-01-24 12:19:32 +08:00
 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: 其他

参考链接

2213 次点击
所在节点    PHP
6 条回复
slince
2018-01-24 12:24:40 +08:00
$a = (1 || $b = 2 && $c = 3) )
true 0 0
Mitt
2018-01-24 12:29:20 +08:00
代码水平问题 这种智力题还是少发吧
killeryang
2018-01-24 12:29:36 +08:00
1 0 0
whileFalse
2018-01-24 15:28:30 +08:00
结果是写这个代码的程序员被其 leader 臭骂一顿
savasun
2018-01-26 09:18:22 +08:00
C
pantingwen
2018-01-29 22:25:37 +08:00
如果运算符优先级相同,那运算符的结合方向决定了该如何运算。例如,"-"是左联的,那么 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