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 相关文章推荐
论坛头像随机变换代码
Oct 09 PHP
一个更简单的无限级分类菜单代码
Jan 16 PHP
PHP下10件你也许并不了解的事情
Sep 11 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
国外十大最流行的PHP框架排名
Jul 04 PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 PHP
php实例分享之二维数组排序
May 15 PHP
Zend Framework页面缓存实例
Jun 25 PHP
PHP实现根据银行卡号判断银行
Apr 29 PHP
使用PHP免费发送定时短信的实例
Oct 24 PHP
Thinkphp事务操作实例(推荐)
Apr 01 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
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
在vue中实现echarts随窗体变化
2020/07/27 Javascript
python中子类调用父类函数的方法示例
2017/08/18 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
python爬虫用mongodb的理由
2020/07/28 Python
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
市场营销毕业生自荐信
2013/11/23 职场文书
美国探亲签证邀请信
2014/02/05 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
年终工作总结范文2014
2014/11/27 职场文书
关于倡议书的范文
2015/04/29 职场文书
奖金申请报告模板
2015/05/15 职场文书
导游词之唐山景点
2019/12/18 职场文书
vue使用echarts实现折线图
2022/03/21 Vue.js