php 中利用 error_reporting() 和 set_error_handler() 函数处理致命错误:error_reporting() 设置报告的错误类型;set_error_handler() 设置自定义错误处理程序,该函数接收错误类型、信息、文件和行号参数;自定义错误处理程序可以格式化错误信息、记录日志或执行其他操作。

PHP 函数处理代码中致命错误
在 PHP 中,可以利用 error_reporting() 和 set_error_handler() 函数来处理代码中的致命错误。
error_reporting() 函数
error_reporting() 函数用于设置报告哪些错误类型。它接受一个整型参数,代表错误类型的按位组合。例如,要报告所有致命错误,可以使用以下代码:
error_reporting(E_ALL);
set_error_handler() 函数
set_error_handler() 函数用于设置自定义错误处理程序。它接受一个可调用函数作为第一个参数。该函数将接收四个参数:
立即学习“PHP免费学习笔记(深入)”;
- 错误编号: 表示错误类型的整型值。
- 错误信息: 描述错误的字符串。
- 错误文件: 包含错误的脚本文件。
- 错误行号: 错误所在的行号。
自定义错误处理程序可以格式化错误信息、将其记录到日志中或执行其他操作。以下是自定义错误处理程序示例:
function error_handler($errno, $errstr, $errfile, $errline)
{
echo "<p><strong>Error:</strong> $errstr</p>";
echo "<p><strong>File:</strong> $errfile</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/xiazai/learn/2593" title="动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版"><img
src="https://img.php.cn/upload/webcode/000/000/000/5a2b9a88e20e5831.png" alt="动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/xiazai/learn/2593" title="动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版">动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版</a>
<p>动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包</p>
</div>
<a href="/xiazai/learn/2593" title="动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div>";
echo "<p><strong>Line:</strong> $errline</p>";
}
set_error_handler('error_handler');实战案例
考虑以下代码:
<?php // 触发一个未捕获的致命错误 echo $undefined_variable; ?>
默认情况下,此代码将导致 PHP 中断并显示标准错误消息。但是,通过设置自定义错误处理程序,我们可以以更用户友好的方式处理错误:
<?php
error_reporting(E_ALL);
function error_handler($errno, $errstr, $errfile, $errline)
{
echo "<p><strong>Error:</strong> $errstr</p>";
echo "<p><strong>File:</strong> $errfile</p>";
echo "<p><strong>Line:</strong> $errline</p>";
}
set_error_handler('error_handler');
// 触发一个未捕获的致命错误
echo $undefined_variable;
?>现在,脚本将在出现错误时显示以下消息:
<strong>Error:</strong> Undefined variable: undefined_variable <strong>File:</strong> /path/to/script.php <strong>Line:</strong> 8










