怎样让PHP执行错误代码时显示错误信息?

怎样让PHP提示错误信息

一、概述

从源代码安装PHP的默认情况下,在运行代码时如果出现错误不提示任何错误信息,其实我们只有修改以下PHP的配置文件就可以让它显示错误信息了

二、环境

    1. Ubuntu 16.04 操作系统
    1. 从源码安装的 PHP 7.2.7

三、解决步骤

首先使用编辑工具打开 php 配置文件,我的php安装目录是/usr/local/php,配置文件的目录在该目录下的/etc目录

vim /usr/local/php/etc/php.ini

在php配置文件的头部添加以下几行代码

# ini_set函数作用:为一个配置选项设置值,
ini_set("display_errors", "stderr");
# error_reporting是设置错误报告内容,E_ALL代表显示所有错误
error_reporting(E_ALL);

如下图所示:

深度截图_20190304083611.png

参数说明:

  • display_errors

在php的配置文件中,"display_errors"选项设置作用是:是否将错误信息作为输出的一部分显示到屏幕,或者对用户隐藏而不显示。设置 "stderr" 表示发送到 stderr 而不是 stdout。 "stderr"从 PHP 5.2.4 开始可用。在以前的版本中,该配置值的类型为 boolean。

stdout(标准输出),输出方式是行缓冲。输出的字符会先存放在缓冲区,等按下回车键时才进行实际的I/O操作。

stderr(标准出错),是不带缓冲的,这使得出错信息可以直接尽快地显示出来。

尽管 display_errors 也可以在运行时设置 (使用 ini_set()), 但是脚本出现致命错误时任何运行时的设置都是无效的。 因为在这种情况下预期运行的操作不会被执行。

  • error_reporting

设置错误报告的级别。该参数可以是一个任意的表示二进制位字段的整数,或者常数名称。错误级别和常数是在 预定义常量定义的。

在 PHP5.3 及以上版本中,默认值为 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED。 该设置不会显示 E_NOTICEE_STRICTE_DEPRECATED 级错误提示。

在 PHP 5.3.0 以前版本中,默认值是 E_ALL & ~E_NOTICE & ~E_STRICT

在 PHP 4 中,默认值是 E_ALL & ~E_NOTICE

四、重启服务器

重启Apache服务器或者PHP-FPM之后,即可看到运行错误代码时会提示错误信息

参考php官方文档:http://php.net/manual/zh/errorfunc.configuration.php#ini.display-errors

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

评论已关闭

要铭记在心:每天都是一年中最美好的日子。

生活远没有咖啡那么苦涩,关键是喝它的人怎么品味!每个人都喜欢和向往随心所欲的生活,殊不知随心所欲根本不是生活。

如果错过了太阳时你流泪了,那么你也要错过群星了。

不如意的时候不要尽往悲伤里钻,想想有笑声的日子吧。

我不明白为什么要那么在意别人的看法,评头论足只是无聊人的消遣,何必看得如临大敌。如果你不吃别人家的饭,就别太把别人的话放在心上。