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合并数组array_merge函数运算符加号与的区别
Oct 31 PHP
PHP Memcached + APC + 文件缓存封装实现代码
Mar 11 PHP
php join函数应用
May 04 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
解析yii数据库的增删查改
Jun 20 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
PHP闭包实例解析
Sep 08 PHP
PHP实现获取FLV文件的时间
Feb 10 PHP
crontab无法执行php的解决方法
Jan 25 PHP
初识PHP中的Swoole
Apr 05 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
PHP使用函数用法详解
Sep 30 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的配置文件php.ini
2006/10/09 PHP
php二分查找二种实现示例
2014/03/12 PHP
用javascript实现点击链接弹出&quot;图片另存为&quot;而不是直接打开
2007/08/15 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
JS中表单的使用小结
2014/01/11 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
js简单抽奖代码
2015/01/16 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
Python坐标线性插值应用实现
2019/11/13 Python
python创建学生管理系统
2019/11/22 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
keras中的卷积层&amp;池化层的用法
2020/05/22 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
家长写给老师的建议书
2014/03/13 职场文书
死亡赔偿协议书
2015/01/28 职场文书
巴黎圣母院观后感
2015/06/10 职场文书
少年雷锋观后感
2015/06/10 职场文书
JS如何实现基于websocket的多端桥接平台
2021/05/14 Javascript
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server