7

所以我有xampp,它根本不会报告任何东西......我什至强行出错,它没有做任何事情......

我用了

error_reporting(-1);
ini_set( 'display_errors', 1 );

根据本文档http://php.net/manual/en/function.error-reporting.php

error_reporting(E_ALL);没有做任何事情......

4

3 回答 3

11

嘿,看看那个,在编写代码时犯了一个更疯狂的错误并且它可以工作......但为什么它没有显示所有错误?

可能您没有收到任何“简单”错误,例如:

Parse error: syntax error, unexpected T_VARIABLE in .../.../index.php on line 6
#or
Warning: include(whateveryouwantedto.include): failed to open str(...)

但你确实得到了类似的东西:

Fatal error: Call to undefined method stdClass::Crap() in .../.../index.php on line 6

根据我的想法,这是因为如果您不禁用 PHP 配置中的日志记录,“简单”错误将“无处”发送。换句话说:PHP 通过不显示任何错误来“帮助”您,因为您定义了log_errors = On和/或error_log = 'php_errors.log'它正在记录所有“真实”错误,但您只是不将其划分为“真实”类别。

如果这没有帮助,思考帽会说:“它不记得了,但我肯定知道它在 PHP 或 Apache 配置中的某个地方。”

当然希望我的思考帽能帮到你。

编辑:解决这个问题可能是找到并打开 php.ini,全选,删除/退格,保存(但保持打开)(或在某处保存副本)。然后重新启动 Apache。看看有没有区别。如果是这样,则 php 配置在其他地方。恢复 php 文件并从根目录搜索您的计算机或服务器以查找另一个 php.ini。

另外我认为你应该确保:

log_errors = Off
error_log = "./"
display_errors = On
error_reporting = E_ALL

或在 PHP 中:

error_reporting(E_ALL & E_STRICT);
ini_set('display_errors', '1');
ini_set('log_errors', '0');
ini_set('error_log', './');
于 2012-10-04T23:17:20.353 回答
6

在您的文件夹 xampp/php 中创建名为 logs 的新文件夹。转到控制面板应用程序日志单击 php_error_log 它现在会询问您是否要创建文件。

于 2016-11-10T09:33:25.040 回答
1

error_reporting 功能有时会在本地服务器上关闭,例如,Xampp 不支持它,因此您必须转到 php.ini 并在那里进行更改。希望这可以帮助 :)。

于 2016-07-11T03:48:34.293 回答