PHP 错误处理程序

在本教程中,我们将介绍 PHP 中的错误处理。我们将介绍 PHP 错误处理的重要性及其工作原理。

什么是 PHP 中的错误处理

这是识别程序中的错误并对其采取行动的过程。PHP 错误检查代码将提高你程序的安全性并使其更加专业。

我们将研究的方法包括:

  1. die() 函数的基本错误处理。
  2. 自定义错误处理。

PHP 中 die() 函数的基本错误处理

die() 函数将向网络发送消息并退出脚本。

在下面的示例代码中,我们将尝试打开根文件夹中不存在的文件。让我们看看发生了什么。

<?php
$file=fopen("sampletutorial.txt","r");
?>

输出:

Warning: fopen(sampletutorial.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\projects\New folder\PHP Error Handling\Example code 1.php on line 2

为防止出现此错误,我们可以使用 die() 函数打印一条消息并退出脚本,如下所示。

<?php
if(file_exists("sampletutorial.txt")) {
  $file = fopen("sampletutorial.txt", "r");
} else {
  die("Error: The file does not exist.");
}
?>

输出:

Error: The file does not exist.

那好多了。让我们看看自定义错误处理程序。

在 PHP 中创建自定义错误处理程序

自定义错误处理程序必须至少有两个参数。

  1. error_level – 这是错误报告级别。
  2. error_message – 这是你要打印的消息。

该函数最多接受五个参数。这些都是:

  1. error_file – 此参数指定有错误的文件。
  2. error_line – 此参数显示有错误的编码行。
  3. error_context – 显示所有有错误的变量和值。

不同类型的错误报告级别:

  1. [1] E_ERROR
  2. [2] E_WARNING
  3. [8] E_NOTICE
  4. [256] E_USER_ERROR
  5. [512] E_USER_WARNING
  6. [1024] E_USER_NOTICE
  7. [2048] E_STRICT
  8. [8191] E_ALL

让我们创建一个自定义错误处理程序。下面的示例代码显示了我们如何创建自定义函数来处理 PHP 中的错误。

<?php
function mycustomError($errno, $errstr) {
  echo "<b>Error:</b> [$errno] $errstr<br>";
  echo "Terminating Script";
  die();
}
?>

这就是我们创建自定义错误处理程序的方式。接下来是设置错误处理程序,如下所示。

<?php
//error handler function
function mycustomError($errno, $errstr) {
  echo "<b>Error:</b> [$errno] $errstr";
}
//set error handler
set_error_handler("mycustomError");
//trigger error
echo($t);
?>

输出:

Error: [2] Undefined variable $t

由于未设置变量 $t,我们会收到一条错误消息,如输出所示。

触发错误:

在用户可以输入数据的脚本中触发错误非常重要。这样,用户就不会输入非法命令。

我们在 PHP 中使用 trigger_error() 函数,如下面的示例代码所示。

<?php
//error handler function
function mycustomError($errno, $errstr) {
  echo "<b>Error:</b> [$errno] $errstr<br>";
  echo "Terminating Script";
  die();
}
//set error handler
set_error_handler("mycustomError",E_USER_WARNING);
//trigger error
$t = 7;
if ($t>=1) {
  trigger_error("Value entered must be 1 or below",E_USER_WARNING);
}
?>

输出:

Error: [512] Value entered must be 1 or below
Terminating Script

在上面的示例代码中,我们通过将变量 $t 的值设置为 7 来触发错误。当变量 $t 大于 1 时,我们的 trigger_error() 函数被设置。