gpt4 book ai didi

php - 为什么当 'display_errors' 打开时此语法错误会返回 HTTP 错误 500?

转载 作者:行者123 更新时间:2023-12-02 06:39:35 27 4
gpt4 key购买 nike

给定以下脚本

<?php

ini_set('display_errors','On');
error_reporting(E_ALL);

thisisanerror

?>

我得到了预期的结果

Notice: Use of undefined constant error - assumed 'error' in /htdocs/test.php on line 8

但是如果我在脚本中添加一些东西

<?php

ini_set('display_errors','On');
error_reporting(E_ALL);

error

function test () {

echo('test');

}

?>

我明白了

HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request.

为什么在后一种情况下我会收到 500 错误而不是正常的语法错误? display_errors 不应该总是显示错误吗?

最佳答案

第二个代码示例是一个彻头彻尾的语法错误。这意味着 PHP 不会进行到代码执行点,并且会在解析时死掉。由于未执行任何代码,因此看不到 ini_set() 调用的效果,因此您不会收到指示问题的 PHP 文本错误。

解析错误是致命的,Web 服务器被(正确地)设置为使用 500 响应代码处理 PHP fatal error 。由于您的 PHP 脚本没有产生任何输出,网络服务器将返回 500 条件的默认错误文档。

如果您想在浏览器中查看解析错误的文本消息 - 顺便说一句,生产环境中通常不会这样做 - 您需要在 php.ini 中打开错误报告或使用 .htaccess文件。

关于php - 为什么当 'display_errors' 打开时此语法错误会返回 HTTP 错误 500?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669029/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com