php debug_print_backtrace,php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
本文實(shí)例講述了php中debug_backtrace、debug_print_backtrace和匿名函數(shù)用法。分享給大家供大家參考。具體分析如下:
debug_print_backtrace() 是一個(gè)很低調(diào)的函數(shù),很少有人注意過(guò)它.
不過(guò)當(dāng)我們對(duì)著一個(gè)對(duì)象調(diào)用另一個(gè)對(duì)象再調(diào)用其它的對(duì)象和文件中的一個(gè)函數(shù)出錯(cuò)時(shí),它正在一邊笑呢.
debug_print_backtrace() 可以打印出一個(gè)頁(yè)面的調(diào)用過(guò)程,從哪兒來(lái)到哪兒去一目了然.不過(guò)這是一個(gè)PHP5的專(zhuān)有函數(shù),好在pear中已經(jīng)有了實(shí)現(xiàn).
一、debug_backtrace 它可以回溯跟蹤函數(shù)的調(diào)用信息,可以說(shuō)是一個(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 它與之不同的是它會(huì)直接打印回溯信息.
三、匿名函數(shù)
從PHP 5.3開(kāi)始新增了匿名函數(shù)(Anonymous functions),也叫閉包函數(shù)(closures),關(guān)鍵字 use 同時(shí)也在匿名函數(shù)中.
先看一下匿名函數(shù)的示例,作為回調(diào)函數(shù)的參數(shù),代碼如下:
echo preg_replace_callback('~-([a-z])~', function ($match) {
return strtoupper($match[1]);
}, 'hello-world'
);
// 輸出 helloWorld
?>
連接閉包和外界變量的關(guān)鍵字:USE
閉包可以保存所在代碼塊上下文的一些變量和值,PHP在默認(rèn)情況下,匿名函數(shù)不能調(diào)用所在代碼塊的上下文變量,而需要通過(guò)使用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; })
);}
test();
希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。
總結(jié)
以上是生活随笔為你收集整理的php debug_print_backtrace,php中debug_backtrace、debug_print_backtrace和匿名函数用法实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: s7300plc串口通信_西门子S7-3
- 下一篇: php猴子找大王算法,教程方法;php实