php中的error_get_last()函數詳解以及用法

  • 2020 年 1 月 19 日
  • 筆記

在我們調試PHP程式碼的時候,尤其是網站前台向後台AJAX數據的時候,如果後台的PHP邏輯流程發生錯誤或程式碼壞死,那麼我們前台會一直在載入的狀態,那麼今天就說一下PHP中的一個獲取程式碼最後錯誤的函數error_get_last()。

PHP中error_get_last()函數定義

PHP函數error_get_last()定義

error_get_last() 函數獲得最後發生的錯誤。

error_get_last()返回值

該函數以數組的形式返回錯誤的資訊,如果沒有錯誤發生就會近回null

返回的錯誤數組包含 4 個鍵名和鍵值:

[type] – 錯誤類型

[message] – 錯誤消息

[file] – 發生錯誤所在的文件

[line] – 發生錯誤所在的行

舉例程式碼演示error_get_last()函數

定義一個錯誤,查看error_get_last()的返回值

程式碼

<?php  $s = 444;  $c = 666;  echo $c;  echo $a; //這裡是錯誤的  echo '<br/>';  print_r(error_get_last());

返回結果

666

Array ( [type] => 8 [message] => Undefined variable: a [file] => /www/wwwroot/vip/998.php [line] => 5 )

程式碼強行中斷測試error_get_last()函數

此測試沒有任何實際意義,只為驗證自己的某些想法

程式碼

<?php  $s = 444;  $c = 666;  echo $c;  echo $a; //這裡是錯誤的  echo '<br/>';  //die(); //這裡被強行停止  exit(); //這裡被強行停止  print_r(error_get_last());

輸出結果

666

由上面的例子可以看出,如果程式碼流程在錯誤發生之後被exti()或die()強行停止後,無法再調用error_get_last()函數來捕捉PHP程式碼中的最後發生的錯誤資訊(廢話),所以這裡我要使用另外的一個register_shutdown_function()函數來配和error_get_last()函數來實現錯誤資訊的回饋。