HOWTO · PHP
PHP 錯誤處理程式
在本教程中,我們將介紹 PHP 錯誤處理。我們將介紹 PHP 錯誤處理的重要性及其工作原理。
在本教程中,我們將介紹 PHP 中的錯誤處理。我們將介紹 PHP 錯誤處理的重要性及其工作原理。
什麼是 PHP 中的錯誤處理
這是識別程式中的錯誤並對其採取行動的過程。PHP 錯誤檢查程式碼將提高你程式的安全性並使其更加專業。
我們將研究的方法包括:
die()函式的基本錯誤處理。- 自定義錯誤處理。
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 中建立自定義錯誤處理程式
自定義錯誤處理程式必須至少有兩個引數。
error_level- 這是錯誤報告級別。error_message- 這是你要列印的訊息。
該函式最多接受五個引數。這些都是:
error_file- 此引數指定有錯誤的檔案。error_line- 此引數顯示有錯誤的編碼行。error_context- 顯示所有有錯誤的變數和值。
不同型別的錯誤報告級別:
[1] E_ERROR[2] E_WARNING[8] E_NOTICE[256] E_USER_ERROR[512] E_USER_WARNING[1024] E_USER_NOTICE[2048] E_STRICT[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() 函式被設定。