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
PHP源码之 ext/mysql扩展部分
Jul 17 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
解析crontab php自动运行的方法
Jun 24 PHP
php生成图形(Libchart)实例
Nov 06 PHP
php实现查看邮件是否已被阅读的方法
Dec 03 PHP
PHP动态生成javascript文件的2个例子
Apr 11 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
php无限级分类实现评论及回复功能
Feb 18 PHP
PHP设计模式之组合模式定义与应用示例
Feb 01 PHP
PHP论坛实现积分系统的思路代码详解
Jun 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
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
2006/12/13 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
JS面向对象编程 for Cookie
2010/09/19 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
js中的面向对象入门
2017/03/06 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
python实现websocket的客户端压力测试
2019/06/25 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
大学毕业登记表自我鉴定
2013/10/09 职场文书
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
小学科学教学反思
2014/01/26 职场文书
检查接待方案
2014/02/27 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
在校证明模板
2015/06/17 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python