PHP 如何显示所有错误

PHP 如何显示所有错误

一个PHP应用程序在脚本运行时会生成多个级别的错误和警告。PHP提供了四种不同的方法来显示这些错误和警告,如下所示:

  1. error_reporting: 它显示除了E-NOTICE、E-STRICT和E_DEPRECATED级别的错误以外的所有级别的错误。
  2. display_errors: 默认情况下,display_errors的值为 off 。将其设置为 on 可显示所有错误,包括解析(语法)错误。
  3. log_errors: log_errors的默认值为 ON ,表示是否应该记录错误日志。
  4. error_log string: error_log string设置了脚本错误应该被记录的文件名。

下面给出了几行代码,请将其添加到你的PHP文件中以显示错误。这是显示所有PHP错误和警告的最快方式。

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

上述功能和指令的工作方式如下:

ini_set()

此函数尝试覆盖 php.ini 文件中找到的配置。

display_errors

display_errors是一个 指令 ,决定错误是否对用户显示或保持隐藏。它不处理发生在PHP启动序列期间的错误。

display_startup_errors

display_startup_errors也是一个 指令 ,用于寻找PHP启动序列期间的错误。

error_reporting()

error_reporting是PHP的一个 内置函数 ,用于显示错误。

程序

<?php
    ini_set('display_errors', 1); 
    ini_set('display_startup_errors', 1); 
    error_reporting(E_ALL); 
    //include a php file which does not exist
    include("jtp.php");
?>

输出

输出将会对浏览器显示一个警告。

Warning: include(jtp.php): failed to open stream: No such file or directory in C:\xampp\htdocs\program\phperror.php on line 6

Warning: include(): Failed opening 'jtp.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\program\phperror.php on line 6

注意:这两个指令display_errors和display_startup_errors都无法显示解析错误。因此,必须修改PHP.ini配置文件。

配置PHP.ini以显示所有错误和警告

必须在php.ini文件中进行以下更改,以显示所有错误,包括解析错误,并重新启动apache服务器在xampp中。

display_errors = on

在PHP.ini文件中将 display_errors 指令设置为” on” ,它将显示所有错误,这些错误不能通过调用ini_set()函数来显示,例如语法和解析错误。

程序

display_errors禁用 或在php.ini文件中被设置为 off 时的PHP程序。

<?php
    //semicolon is missing, which generates parse error in php code
    for (i = 5;i >= 0 $i--) {
        echo "It will generate parse error";
    }
?>

输出

display_errors 指令 禁用 时,输出将如下屏幕截图显示给浏览器。

PHP 如何显示所有错误

输出:

以上程序的输出情况当 显示错误 被启用或设置为 开启 在php.ini文件中,并且服务器重新启动后。

PHP 如何显示所有错误

错误报告级别

正如我们已经讨论过的,PHP会产生不同级别的错误。所以,让我们了解一下在PHP代码中会生成哪些类型的错误。

常量 描述
E_ERROR 致命的运行时错误。脚本的执行已停止。
E_WARNING 非致命的运行时错误。脚本的执行不会停止。
E_PARSE 由解析器生成的编译时错误。
E_NOTICE 运行时通知。PHP脚本发现了可能是错误的东西。
E_USER_ERROR E_USER_ERROR与E_ERROR类似,但它由PHP脚本使用trigger_error()函数生成。这是一个致命的用户生成的错误消息。
E_USER_WARNING E_USER_WARNING是一个非致命的用户生成的警告,它与E_WARNING类似。但它也由PHP脚本使用trigger_error()函数生成。
E_USER_NOTICE 它是一个用户生成的通知,类似于E_NOTICE。
E_STRICT 它不严格属于错误。自PHP版本5.4.0后成为E_ALL的一部分。
E_ALL 启用所有错误和警告。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程