PHP 错误处理 user_error() 函数


PHP user_error() 函数用于生成用户定义的错误消息。它用于在满足用户指定的条件时显示错误消息。它可以与内置错误处理程序或使用 set_error_handler() 方法定义的用户定义函数结合使用。

当您想根据给定条件动态执行包含用户定义消息的脚本时,此功能非常有用。否则,此函数返回 True,如果指定了无效的错误类型,则返回 False。

此函数的工作方式与 trigger_error() 函数相同。

语法

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


 bool user_error ( string $error_msg [, int $error_type] );

参数

以下是 user_error() 函数的参数 -

参数 描述
$error_msg (必需) 指定错误消息。长度限制为 1024 个字符。
$error_types  (可选)指定此错误消息的错误类型。可能的错误类型 -
  • E_USER_ERROR - 用户生成的致命运行时错误。无法恢复的错误。脚本的执行已停止。
  • E_USER_WARNING - 用户生成的非致命运行时警告。脚本的执行不会停止。
  • E_USER_NOTICE - 默认。用户生成的运行时通知。脚本发现了一些可能是错误的内容,但也可能在正常运行脚本时发生。

 

返回值

user_error() 函数在成功时返回 True。如果指定了错误的 error_type,则为 False。

PHP 版本

user_error() 函数首次在 PHP 4 中引入,在 PHP 5、PHP 7 和 PHP 8 可继续运行。

示例 1

下面简单使用 PHP 错误处理 user_error() 函数来显示用户定义的警告消息。它会启动一条不是必需的信息性消息,该消息不会停止脚本。


<?php
    // 显示一个简单的通知
    $message = "这是一个用户定义的通知。";
    user_error($message, E_USER_NOTICE);

    echo "通知后脚本继续运行。";
?>

以下是以下代码的结果 -

Notice: 这是一个用户定义的通知。
通知后脚本继续运行。

示例 2

该程序展示了如何借助 user_error() 函数生成警告。将向用户显示警告,但脚本仍将运行。基本上,我们使用可选参数 $error_types E_USER_WARNING 类型用于给定用户生成的运行时错误。


<?php
    // 触发警告
    $age = 15;
    if ($age < 18) {
        user_error("警告:必须年满18岁才能继续。", E_USER_WARNING);
    }

    echo "警告后脚本继续运行。";
?> 

这将生成以下输出 -

Warning: 警告:必须年满18岁才能继续。
警告后脚本继续运行。

示例 3

现在,下面的代码使用 user_error() 方法中的 E_USER_ERROR,并创建一个严重的错误消息。触发错误时,程序执行将停止。


<?php
    // 触发致命错误
    $divisor = 0;
    if ($divisor == 0) {
        user_error("错误:不允许除零。", E_USER_ERROR);
    }

    // 由于严重错误,此行将不会执行
    echo "此消息将不会显示。";
?> 

这将创建以下输出 -

Fatal error: 错误:不允许除零。

示例 4

在以下示例中,我们使用 user_error() 函数并将其与自定义错误处理程序结合使用。该程序使用 user_error() 函数以用户定义的方式处理错误,并使用 set_error_handler() 设置自定义错误处理程序。


<?php
    // 自定义错误处理函数
    function customErrorHandler($errno, $errstr) {
    echo "自定义错误 [$errno] : $errstr\n";
    return true;
    }

    // 设置自定义错误处理程序
    set_error_handler("customErrorHandler");

    // 触发用户定义的错误
    user_error("这是一个自定义处理的错误。", E_USER_WARNING);

    echo "脚本在自定义错误处理后继续运行。";
?> 

以下是上述代码的输出 -

自定义错误 [512] : 这是一个自定义处理的错误。 脚本在自定义错误处理后继续运行。