PHP doesn#39;t handle stack overflow?(PHP 不处理堆栈溢出?)
问题描述
当我刚尝试以下 PHP 代码时,我感到很惊讶:
I was surprised when I just tried the following PHP code:
function foo()
{
foo();
}
foo();
我预计会收到500:内部服务器错误".相反,连接立即关闭(未收到任何字节),并且日志文件显示 apache 段错误.怎么回事?这是 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 不处理堆栈溢出?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:PHP 不处理堆栈溢出?
基础教程推荐
- 学说 dbal querybuilder 作为准备好的语句 2022-01-01
- PHP PDO MySQL 查询 LIKE ->多个关键词 2021-01-01
- 如何替换eregi() 2022-01-01
- 有什么方法可以用编码 UTF-8 而不是 Unicode 返回 PHP`json_encode`? 2021-01-01
- PHP 类:全局变量作为类中的属性 2021-01-01
- 如何在 Laravel 中使用 React Router? 2022-01-01
- YouTube API v3 点赞视频,但计数器不增加 2022-01-01
- Cron Jobs 调用带有变量的 PHP 脚本 2022-01-01
- 在PHP中根据W3C规范Unicode 2022-01-01
- 如何在 Laravel 5.3 注册中添加动态下拉列表列? 2021-01-01
