PHP中通过trigger_error触发PHP错误示例
【错误抑制符@】
除了 php.ini 中 error_reporting 和 display_errors 的设置、error_reporting() 函数、ini_set() 函数 外,还可以使用错误抑制符@ 屏蔽错误的输出。
@ 加在任何会产生错误的表达式之前。
【通过 trigger_error 触发 PHP 错误】
触发错误的功能不只限于 PHP 解析器,还可以通过 trigger_error() 函数触发错误,类似于异常中抛出的异常一样,抛出了一个错误,可以协助调试代码。
【例】
<?php $num1 = 1; $num2 = '2'; if(!(is_numeric($num1) && is_numeric($num2))){ //手动抛出通知级别的错误 trigger_error('num1 和 num2 必须为合法数值', E_USER_NOTICE); }else{ echo $num1 + $num2; }echo '<br />程序继续向下执行';
输出:
3 程序继续向下执行
而:
<?php $num1 = 1; $num2 = '2a'; if(!(is_numeric($num1) && is_numeric($num2))){ //手动抛出通知级别的错误 trigger_error('num1 和 num2 必须为合法数值', E_USER_NOTICE); }else{ echo $num1 + $num2; }echo '<br />程序继续向下执行';
输出:
( ! ) Notice: num1 和 num2 必须为合法数值 in D:practisephpErrorerror1.php on line 6
程序继续向下执行
【其他】当数据库连接不上时等严重错误时,可以手动抛出错误 —— 用 E_USER_ERROR 取代 PHP 内置的E_WARNING 警告。