本文章來給大家介紹debug_backtrace、debug_print_backtrace和匿名函數一些用法分析,有需要瞭解的同學不防進入參考。
debug_print_backtrace,與之不同的是它會直接列印回溯資訊。
debug_print_backtrace() 是一個很低調的函數,很少有人注意過它.
不過當我對著一個對象調用另一個對象再調用其它的對象和檔案中的一個函數出錯時,它正在一邊笑呢.
debug_print_backtrace() 可以列印出一個頁面的調用過程 , 從哪兒來到哪兒去一目瞭然.
不過這是一個PHP5的專有函數,好在pear中已經有了實現,
一、debug_backtrace 它可以回溯跟蹤函數的調用資訊,可以說是一個調試利器
| 代碼如下 |
複製代碼 |
one(); function one() { two(); } function two() { three(); } function three() { print_r( debug_backtrace() ); } /*輸出: Array( [0] => Array ( [file] => D:apmservwwwhtdocstestdebugindex.php [line] => 10 [function] => three [args] => Array ( ) ), [1] => Array ( [file] => D:apmservwwwhtdocstestdebugindex.php [line] => 6 [function] => two [args] => Array ( ) ), [2] => Array ( [file] => D:apmservwwwhtdocstestdebugindex.php [line] => 3 [function] => one [args] => Array ( ) ) )*/ |
二、debug_print_backtrace 它與之不同的是它會直接列印回溯資訊。
三、匿名函數
從PHP 5.3開始新增了匿名函數(Anonymous functions),也叫閉包函數(closures),關鍵字 use 同時也在匿名函數中。
先看一下匿名函數的樣本,作為回呼函數的參數
| 代碼如下 |
複製代碼 |
echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world' ); // 輸出 helloWorld ?> |
串連閉包和外界變數的關鍵字:USE
閉包可以儲存所在代碼塊內容相關的一些變數和值。PHP在預設情況下,匿名函數不能調用所在代碼塊的上下文變數,而需要通過使用use關鍵字
| 代碼如下 |
複製代碼 |
function test(){ $num = 2; $array = array(1,2,3,4,5,6,7,8); print_r(array_filter($array, function($param) use ($num){ return $param % intval($num) ==0; }) );} test();
|
http://www.bkjia.com/PHPjc/445616.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445616.htmlTechArticle本文章來給大家介紹debug_backtrace、debug_print_backtrace和匿名函數一些用法分析,有需要瞭解的同學不防進入參考。 debug_print_backtrace,與之不同...