PHP 错误处理 error_get_last() 函数


PHP 错误处理 error_get_last() 函数用于获取脚本执行期间遇到的最新错误。它提供有关数组错误的信息。

错误类型、消息、文件和行号都包含在此数组中。如果没有错误,将返回 NULL。此函数可加快查找和修复代码中的错误的过程。

语法

以下是 PHP 错误处理 error_get_last() 函数的语法 -


 array error_get_last()

参数

此函数不接受任何参数。

返回值

error_get_last() 函数返回一个关联数组,指示最近的错误,键为 “type”、“message”、“file” 和 “line”。如果问题是由 PHP 内部函数引起的,则 “message” 将以其名称开头。如果未发生错误,则返回 null

PHP 版本

error_get_last() 函数首次引入于核心 PHP 5.2.0 中,在 PHP 7 和 PHP 8 中继续轻松运行。

示例 1

下面展示 PHP 错误处理的基本示例,error_get_last() 函数通过创建基本错误(例如使用未定义的变量)来工作。生成错误后,该函数会收集错误数据。


<?php
   // 触发警告
   echo $undefinedVar;

   // 获取最后的错误详细信息
   $error = error_get_last();

   // 显示错误数组
   print_r($error);
?>

以下是以下代码的结果 -

Array
(
    [type] => 8
    [message] => Undefined variable: undefinedVar
    [file] => C:\user\WWW\index.php
    [line] => 3
)

示例 2

该程序演示如何使用 error_get_last() 函数来处理由文件操作引起的错误,例如尝试访问不存在的文件。如果过程失败,它将检索最后一个错误。


<?php
   // 尝试打开一个不存在的文件
   $file = fopen("/user/www/file_not_present.txt", "r");

   // 获取并显示最后一个错误
   if ($file === false) {
      $error = error_get_last();
      echo "错误: " . $error['message'];
   }
?> 

这将生成以下输出 -

错误: fopen(/user/www/file_not_present.txt): failed to open stream: No such file or directory 

示例 3

此程序会创建一个自定义情况,在该情况下,会发生除以零错误。error_get_last() 函数检索错误信息并以用户友好的格式显示它。


<?php
   // 执行除零操作以触发警告
   $result = 10 / 0;

   // 获取并显示最后一个错误
   $error = error_get_last();
   if ($error) {
      echo "错误类型: " . $error['type'] . "\n";
      echo "错误消息: " . $error['message'] . "\n";
   }
?> 

这将创建以下输出 -

Warning: Division by zero in C:\user\WWW\index.php on line 3
错误类型: 2
错误消息: Division by zero