PHP不处理堆栈溢出? [英] PHP doesn't handle stack overflow?
问题描述
当我刚刚尝试下面的PHP代码时,我很惊讶:
I was surprised when I just tried the following PHP code:
function foo()
{
foo();
}
foo();
我希望得到500:内部服务器错误。相反,连接立即关闭(没有接收到字节),日志文件显示apache segfaulted。 WTF?这是PHP中的已知错误吗?有没有一些配置选项,我错过了?因为每个意外堆栈溢出的崩溃进程是,好的...非常不能接受,我想。
I expected to get "500: Internal server error". Instead the connection was closed immediately (no bytes received), and the log files show that apache segfaulted. WTF? Is this a known bug in PHP? Are there some configuration options that I'm missing? Because a crashed process for every accidental stack overflow is, well... pretty unacceptable, I think.
推荐答案
PHP不能处理这个,它只会进入一个无限循环,产生一个分段错误。
PHP is not able to deal with this, it will just go into an infinite loop and produce a segmentation fault.
http://bugs.php.net/bug.php?id=49823
http://www.mail-archive.com/php-bugs@lists.php.net/msg128905.html
这篇关于PHP不处理堆栈溢出?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!