PHP 错误处理程序

John Wachira 2023年1月30日
  1. 什么是 PHP 中的错误处理
  2. PHP 中 die() 函数的基本错误处理
  3. 在 PHP 中创建自定义错误处理程序
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() 函数被设置。

作者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn