debug_print_backtrace,與之不同的是它會直接打印回溯信息.
debug_print_backtrace() 是一個(gè)很低調(diào)的函數(shù),很少有人注意過它.
不過當(dāng)我對著一個(gè)對象調(diào)用另一個(gè)對象再調(diào)用其它的對象和文件中的一個(gè)函數(shù)出錯時(shí),它正在一邊笑呢.
debug_print_backtrace() 可以打印出一個(gè)頁面的調(diào)用過程,從哪兒來到哪兒去一目了然.不過這是一個(gè)PHP5的專有函數(shù),好在pear中已經(jīng)有了實(shí)現(xiàn).
一、debug_backtrace 它可以回溯跟蹤函數(shù)的調(diào)用信息,可以說是一個(gè)調(diào)試?yán)?代碼如下:
- 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 它與之不同的是它會直接打印回溯信息.
三、匿名函數(shù)
從PHP 5.3開始新增了匿名函數(shù)(Anonymous functions),也叫閉包函數(shù)(closures),關(guān)鍵字 use 同時(shí)也在匿名函數(shù)中.
先看一下匿名函數(shù)的示例,作為回調(diào)函數(shù)的參數(shù),代碼如下:
- <?php
- echo preg_replace_callback('~-([a-z])~', function ($match) {
- return strtoupper($match[1]);
- }, 'hello-world'
- );
- // 輸出 helloWorld
- ?>
連接閉包和外界變量的關(guān)鍵字:USE
閉包可以保存所在代碼塊上下文的一些變量和值,PHP在默認(rèn)情況下,匿名函數(shù)不能調(diào)用所在代碼塊的上下文變量,而需要通過使用use關(guān)鍵字,代碼如下:
- 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; })
- );} //開源代碼Vevb.com
- test();
新聞熱點(diǎn)
疑難解答