国产探花免费观看_亚洲丰满少妇自慰呻吟_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發送之后

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海兴县| 静乐县| 喀喇| 江西省| 梧州市| 台中县| 南溪县| 星子县| 松潘县| 安远县| 习水县| 侯马市| 沙田区| 北宁市| 青河县| 石林| 北票市| 东城区| 威信县| 龙里县| 花莲市| 澄城县| 会同县| 健康| 阿克苏市| 紫金县| 凉山| 新泰市| 临夏县| 双城市| 九台市| 胶南市| 茶陵县| 米脂县| 祥云县| 潮安县| 霸州市| 泰宁县| 卢氏县| 岑巩县| 彭水|