📜  显示 php 错误 - PHP (1)

📅  最后修改于: 2023-12-03 15:26:19.898000             🧑  作者: Mango

显示 PHP 错误 - PHP

在 PHP 开发过程中,我们常常需要查看应用程序是否存在错误。然而,PHP 默认情况下并不会在页面上显示错误信息,而是会将错误信息写入服务器的错误日志文件中。因此,开发者需要在调试过程中手动打开 PHP 错误输出功能,以便查看应用程序的错误信息。

打开错误输出

开启 PHP 错误输出的方式有两种:

  1. 通过修改 php.ini 配置文件

php.ini 文件中找到以下两行代码并将注释符号(;)去掉:

display_errors = On
error_reporting = E_ALL

如果要在开发环境和生产环境中使用不同的设置,则可以通过在 php.ini 文件中添加以下代码来指定不同的错误输出级别:

; 开发环境
error_reporting = E_ALL
display_errors = On

; 生产环境
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
log_errors = On
  1. 通过在脚本中使用 ini_set() 函数

除了在 php.ini 文件中设置错误输出选项外,我们还可以在 PHP 脚本中使用 ini_set() 函数来动态地修改 PHP 错误输出选项。以下是一个示例:

<?php
// 开启错误输出
ini_set('display_errors', 'On');
ini_set('error_reporting', E_ALL);
错误输出级别

在 PHP 中,错误输出的级别有多个。以下是一些常用的错误输出级别:

  • E_ERROR:致命错误,会导致脚本终止执行
  • E_WARNING:非致命错误,会显示错误信息但不会终止脚本执行
  • E_NOTICE:提示消息,用于提醒开发者注意某些情况
  • E_DEPRECATED:已废弃的代码,用于提示开发者某些代码已经过时,不建议继续使用
  • E_STRICT:不严格的代码标准,用于提示开发者一些代码不符合 PHP 标准
获取错误信息

在打开 PHP 错误输出功能后,我们可以在浏览器上直接查看错误信息。此外,我们还可以通过以下代码在 PHP 脚本中获取错误信息:

<?php
// 开启错误输出
ini_set('display_errors', 'On');
ini_set('error_reporting', E_ALL);

// 产生一个错误
$data = array(1, 2, 3);
echo $data[3];

以上代码将产生一个 E_NOTICE 级别的错误,并提示 $data[3] 未定义。如果我们希望在脚本中捕获错误信息,可以使用 error_get_last() 函数来获取最后产生的错误信息:

<?php
// 开启错误输出
ini_set('display_errors', 'On');
ini_set('error_reporting', E_ALL);

// 产生一个错误
$data = array(1, 2, 3);
echo $data[3];

// 获取最后一个错误信息
$error = error_get_last();

if ($error !== null) {
    echo $error['message'];
}

以上代码将输出以下内容:

Undefined offset: 3
结论

打开 PHP 错误输出功能可以帮助开发者轻松地调试 PHP 应用程序,并快速定位程序中的错误。简单修改 php.ini 文件或使用 ini_set() 函数即可打开 PHP 错误输出。在开发过程中,需要时刻关注错误输出信息,并及时修复错误。