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

首頁 > 語言 > PHP > 正文

php egister_shutdown_function 函數詳解

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

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

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發送之后

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊金霍洛旗| 双牌县| 宣武区| 长春市| 峡江县| 上虞市| 寿宁县| 宝鸡市| 理塘县| 专栏| 沂源县| 双牌县| 新安县| 广昌县| 武义县| 海阳市| 宜丰县| 武山县| 巴塘县| 深水埗区| 云南省| 磐石市| 平武县| 南陵县| 年辖:市辖区| 健康| 安义县| 登封市| 益阳市| 延庆县| 岗巴县| 巴楚县| 萨嘎县| 仙游县| 双城市| 凤庆县| 新绛县| 和龙市| 恩施市| 临洮县| 永清县|