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:\practise\php\Error\error1.php on line 6
程序繼續向下執行
【其他】當數據庫連接不上時等嚴重錯誤時,可以手動拋出錯誤 —— 用 E_USER_ERROR 取代 PHP 內置的E_WARNING 警告。