【问题标题】:Showing errors with error_reporting(E_ALL)使用 error_reporting(E_ALL) 显示错误
【发布时间】:2016-05-25 20:49:05
【问题描述】:

我正在使用 error_reporting(E_ALL) 来显示错误,它工作正常。目前我把这个函数放在我希望显示错误的每个页面和代码上,这意味着我在我的项目中使用了数百次。有什么方法可以让我不必一次又一次地重复此功能,但它适用于整个站点,例如放入标头或数据库连接。对不起,如果我问的是一些愚蠢的问题,但只是想确定类似的东西是否可行并且是常见的做法。

【问题讨论】:

  • 在 php 中通常有一个包含文件,其中包含整个站点所需的内容,例如这样的事情
  • 比较常见的使用php.ini或.htaccess

标签: php error-reporting


【解决方案1】:

有几种方法可以解决这个问题:

php.ini

如果您有权访问它,您应该在您的php.ini 文件中配置它。这样,该设置将在全局范围内应用,您无需在每个文件中都包含该函数。

display_errors = On
error_reporting = E_ALL

.htaccess

一些托管服务提供商允许您创建一个.htaccess 文件,该文件位于项目的根目录中。以下还可以全局启用错误,还可以避免代码重复

php_flag display_errors on
php_flag error_reporting 32767

http://php.net/manual/en/errorfunc.constants.php

文件包括

如果所有其他方法都失败了,您可以继续当前状态或查看您的应用程序/站点的执行情况。如果您在应用程序的最开始入口点有以下代码,则任何包含都将从它继承。如果所有请求都路由到同一个文件,这种方式效果最好。

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

include 'otherstuff.php'; // will also display errors

但是,如果您的应用程序有多个入口点,请考虑使用通用包含,这样您至少不会重复代码。

includes.php
error_reporting(E_ALL);
ini_set('display_errors', 1);
index.php
include 'includes.php';

// other code

【讨论】:

  • 感谢 php.ini 似乎是最佳实践,我有 ; display_errors ; Default Value: On ; Development Value: On ; Production Value: Off 所以在这里我必须删除默认值之前的分号并在其下方插入 error_reporting()
  • @bɪˈɡɪnə 是的,您需要删除;,因为它决定了该行是否是评论。但是,您需要确保 Default Value 不存在于实际值中。总体而言,这些行应该完全符合我在上面的答案中添加它们的方式:)
猜你喜欢
  • 2014-08-23
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-10
  • 1970-01-01
  • 2012-12-17
相关资源
最近更新 更多