我从here
中提取了此结果有趣的是,
var_dump((int)(PHP_INT_MAX + 1))
的结果将显示为负数(在此特定示例的情况下,它将显示int(-9223372036854775808)
)。同样,这里的关键是让候选人知道该值将显示为负数。
int为负,因为加1将溢出整数位并更改表示int符号的位?原因是什么?
答案 0 :(得分:2)
@kainaw是正确的。
这称为“缓冲区溢出”。
PHP以最佳方式对其进行了处理。
如果PHP没有使该整数为正数,则RAM中会有一个额外的“位”浮动(可能会导致502错误,但情况可能更糟)