我从这里提取了这个结果:
有趣的是,
var_dump((int)(PHP_INT_MAX + 1))
的结果将显示为一个负数(在本例中,它将显示int(-9223372036854775808)
)。同样,这里的关键是让候选人知道该值将显示为负数。
int是否为负数,因为加1会溢出整数位并改变表示int的符号的位?原因是什么?
@kainaw是对的。这被称为"缓冲区溢出"。
PHP以最好的方式处理它。如果PHP不使该整数为正,则RAM中会有一个额外的"位"浮动(可能会导致502错误,但情况可能更糟)