加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php中debug_backtrace、debug_print_backtrace和匿名函数用法实

发布时间:2020-12-13 02:13:33 所属栏目:PHP教程 来源:网络整理
导读:《php中debug_backtrace、debug_print_backtrace和匿名函数用法实例》要点: 本文介绍了php中debug_backtrace、debug_print_backtrace和匿名函数用法实例,希望对您有用。如果有疑问,可以联系我们。 PHP学习 本篇章节讲解php中debug_backtrace、debug_pri

《php中debug_backtrace、debug_print_backtrace和匿名函数用法实例》要点:
本文介绍了php中debug_backtrace、debug_print_backtrace和匿名函数用法实例,希望对您有用。如果有疑问,可以联系我们。

PHP学习本篇章节讲解php中debug_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 同时也在匿名函数中.

先看一下匿名函数的示例,作为回调函数的参数,代码如下:

代码如下:
<?php?
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();

希望本文所述对大家的PHP程序设计有所赞助.

欢迎参与《php中debug_backtrace、debug_print_backtrace和匿名函数用法实例》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读