【问题标题】:How to show code errors while running如何在运行时显示代码错误
【发布时间】:2012-04-20 08:18:16
【问题描述】:

之前我安装了 php5.1,最近升级到了 php5.3。

在以前的版本中,每当出现错误时,所有语法错误和其他错误都会显示在页面中,这对我来说很容易调试。

但现在每当页面出现错误时,它就会停止处理并显示空白。

我也尝试添加以下内容:

error_reporting(E_ALL & E_STRICT);
ini_set('display_errors', 1);

在页面顶部,但没有工作。有什么建议吗?

编辑更多信息:

当我执行 phpinfo() 时,它会显示我的配置文件:c:\php\php.ini。 进一步打开和编辑我发现的 php.ini 文件:

error_reporting = E_ALL
display_errors = On

编辑更多信息: 将 error_reporting 更正为 E_ALL | E_STRICT。 发现每当从函数或类中的代码生成错误时,它几乎是空白的。

【问题讨论】:

  • 修改php.ini后是否重启了httpd?
  • 是的,当然...我什至也重新启动了我的电脑...
  • 搜索 php.ini 文件,你有可能不止一个。

标签: php apache error-handling


【解决方案1】:

试试这个。

ini_set('display_errors','On');

【讨论】:

  • 你有任何类型的缓存要打开吗?
【解决方案2】:

每当页面出现错误时

什么级别的错误?它是致命的还是不致命的? 如果致命 - 那么您的代码内设置(error_reporting()ini_set)根本不会被使用:而是使用 php.ini 的设置。

IMO,您提供的信息不足:至少需要 php.ini 值来满足 error_reportingerror_log 指令的需要。

【讨论】:

  • 正如我所理解的,您可以控制“错误”,对吗?如果是这样 - 那么您要捕获什么样的错误:致命的还是非致命的?
  • 嗯。等待。 E_ALL & E_STRICT(带有二进制)表示您对E_NONE错误感兴趣:)如果您想捕获E_ALL E_STRICT - 然后是二进制应使用:E_ALL | E_STRICT。试试这个。
猜你喜欢
  • 2018-12-09
  • 1970-01-01
  • 2023-03-25
  • 2022-09-27
  • 2016-03-12
  • 1970-01-01
  • 2011-12-19
  • 2017-06-15
  • 1970-01-01
相关资源
最近更新 更多