PHP:$ i = $ i ++崩溃了服务器

Bri*_*ian 2 php

几年前,在我知道SO之前,这发生在我身上,但我仍然很好奇.当我还在学习PHP的基础知识时,我偶然输入了$i = $i++; 当我在浏览器中测试网页时,服务器崩溃了,需要很长时间才能恢复.我之前输入了一些非常愚蠢的东西并创建了一堆无限循环,但由于某种原因,这是最糟糕的.有谁知道为什么这条线是如此'有毒'

Dan*_*May 7

$i = $i++;$i = $i;基本上是一样的.

不幸的$i = $i++;是被称为"未定义的行为".

任何事情都可能发生,因为编译器无法完全理解正在发生的事情.

有一个很好的SO问题涵盖类似未定义的行为在这里.

  • 为此,使用标签"未定义的行为"是一个飞跃.所有PHP表达式都有返回值; $ i ++的返回值仅仅被分配给$ i,这可能是多余的.编译器没有任何东西可以"理解",而且我和那些认为操作混淆的人在一起. (3认同)
  • 我的猜测是,几年前,如果运行该代码,服务器运行的PHP版本将崩溃.不确定. (2认同)