国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php egister_shutdown_function 函數詳解

2024-09-04 11:49:29
字體:
來源:轉載
供稿:網友

設定錯誤和異常處理三函數

register_shutdown_function(array(‘Debug’,'fatalError’)); //定義PHP程序執行完成后執行的函數

set_error_handler(array(‘Debug’,'appError’)); // 設置一個用戶定義的錯誤處理函數

set_exception_handler(array(‘Debug’,'appException’)); //自定義異常處理。

下面講一下register_shutdown_function() 函數.

功能:register_shutdown_function() 函數可實現當程序執行完成后執行的函數,其功能為可實現程序執行完成的后續操作。程序在運行的時候可能存在執行超時,或強制關閉等情況,但這種情況下默認的提示是非常不友好的,如果使用register_shutdown_function()函數捕獲異常,就能提供更加友好的錯誤展示方式,同時可以實現一些功能的后續操作,如執行完成后的臨時數據清理,包括臨時文件等。

可以這樣理解調用條件:

1、當頁面被用戶強制停止時

2、當程序代碼運行超時時

3、當PHP代碼執行完成時,代碼執行存在異常和錯誤、警告

實例說明:

1. 一個簡介的例子 , 調用一個函數

  1. <?php 
  2.  
  3. function test() { 
  4.  
  5.     echo "test()"
  6.  
  7.  
  8. register_shutdown_function(array("test")); 
  9.  
  10. echo "show: "
  11.  
  12. ?> 

這個例子輸出:show: test()

這個函數的作用就是在退出腳本前,調用已經注冊的函數,并執行該函數。

2. 在類中用一個數組作為一個參數

  1. <?php 
  2.  
  3.     class ClassDemo { 
  4.  
  5.         public function __construct() { 
  6.  
  7.             register_shutdown_function(array($this"f")); 
  8.  
  9.         } 
  10.  
  11.         public function f() { 
  12.  
  13.             echo "f()"
  14.  
  15.         } 
  16.  
  17.     } 
  18.  
  19.     $demo = new ClassDemo(); 
  20.  
  21.     echo "before </br>"
  22.  
  23. ?> 

輸出:

before

f()

3. 帶有參數的例子:

  1. <?php 
  2.  
  3. function f($str) { 
  4.  
  5.         echo $str."<br>"
  6.  
  7.  
  8. register_shutdown_function("f","hello"); 
  9.  
  10.     class ClassDemo { 
  11.  
  12.         public function __construct() { 
  13.  
  14.             register_shutdown_function(array($this"f"),"hello"); 
  15.  
  16.         } 
  17.  
  18.         public function f($str) { 
  19.  
  20.             echo "f():".$str
  21.  
  22.         } 
  23.  
  24.     } 
  25.  
  26.    $demo = new ClassDemo(); 
  27.  
  28.    echo "before </br>";   
  29.  
  30. ?> 

注意事項

1,register_shutdown_function()函數可重復調用,但執行的順序與注冊的順序相同

2,如果在調用register_shutdown_function()函數之前有exit()函數調用,register_shutdown_function()函數將不能執行

3,PHP4后支持注冊函數參數傳遞

4,在某些服務端,如Apache,當前目錄在register_shutdown_function()函數中能夠改變

5,register_shutdown_function()函數執行在headers發送之后

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博白县| 漳州市| 南陵县| 襄汾县| 全州县| 中江县| 宝丰县| 赤城县| 司法| 九江县| 望奎县| 崇义县| 长兴县| 赞皇县| 瑞丽市| 赣榆县| 湟源县| 陕西省| 察隅县| 丁青县| 昭觉县| 溆浦县| 泰兴市| 仪陇县| 博野县| 柏乡县| 喜德县| 滨州市| 简阳市| 长沙市| 郴州市| 南召县| 奉节县| 潜江市| 海宁市| 元谋县| 柯坪县| 武威市| 阳原县| 龙陵县| 富蕴县|