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 相关文章推荐
MySQL修改密码方法总结
Mar 25 PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
Mar 28 PHP
php 中文处理函数集合
Aug 27 PHP
php实现的一个很好用HTML解析器类可用于采集数据
Sep 23 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
PHP结合jQuery实现找回密码
Jul 22 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
PHP中的函数声明与使用详解
May 27 PHP
php 猴子摘桃的算法
Jun 20 PHP
Laravel多用户认证系统示例详解
Mar 13 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
使用无限生命期Session的方法
2006/10/09 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
python 队列详解及实例代码
2016/10/18 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
信用社实习人员自我鉴定
2013/09/20 职场文书
艺术设计专业个人求职信
2013/09/21 职场文书
毕业生实习鉴定
2013/12/11 职场文书
优秀学生事迹材料
2014/02/08 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
升学宴演讲稿
2014/09/01 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
鲁迅故居导游词
2015/02/05 职场文书
特此通知格式
2015/04/27 职场文书
教师节联欢会主持词
2015/07/04 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
用Python提取PDF表格的方法
2021/04/11 Python