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


Posted in PHP onDecember 01, 2014

本文实例讲述了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 相关文章推荐
用PHP 4.2书写安全的脚本
Oct 09 PHP
PHP中str_replace函数使用小结
Oct 11 PHP
PHP获取文件后缀名的三个函数
Oct 15 PHP
如何用php生成扭曲及旋转的验证码图片
Jun 07 PHP
解析php取整的几种方式
Jun 25 PHP
php实现下载限制速度示例分享
Feb 13 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
nginx下安装php7+php5
Jul 31 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
Sep 30 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
php中随机函数mt_rand()与rand()性能对比分析
Dec 01 #PHP
THINKPHP项目开发中的日志记录实例分析
Dec 01 #PHP
PHP内置的Math函数效率测试
Dec 01 #PHP
php查找字符串出现次数的方法
Dec 01 #PHP
ThinkPHP实现动态包含文件的方法
Nov 29 #PHP
PHP静态文件生成类实例
Nov 29 #PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
Nov 29 #PHP
You might like
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
php强制运行广告的方法
2014/12/01 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
Python删除n行后的其他行方法
2019/01/28 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
总经理职责
2013/12/22 职场文书
俄罗斯商务邀请函
2014/01/26 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
开除通知书范本
2015/04/25 职场文书
小学毕业感言200字
2015/07/30 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server