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新手上路(二)
Oct 09 PHP
php socket方式提交的post详解
Jul 19 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
Jun 23 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
PHP+Ajax实时自动检测是否联网的方法
Jul 01 PHP
php实现可逆加密的方法
Aug 11 PHP
PHP中set error handler函数用法小结
Nov 11 PHP
php简单的上传类分享
May 15 PHP
PHP导出带样式的Excel示例代码
Aug 28 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分页集合包括使用方法
2013/10/21 PHP
php 解压rar文件及zip文件的方法
2014/05/05 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
前端必学之PHP语法基础
2016/01/01 PHP
Javascript的一种模块模式
2008/03/22 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
深入理解Python变量与常量
2016/06/02 Python
快速查询Python文档方法分享
2017/12/27 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
python定时任务 sched模块用法实例
2019/11/04 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
python中with用法讲解
2020/02/07 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
python实现与redis交互操作详解
2020/04/21 Python
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
工业学校毕业生自荐书
2014/01/03 职场文书
无犯罪记录证明
2014/09/19 职场文书
迟到检讨书范文
2015/01/27 职场文书
感恩教师主题班会
2015/08/12 职场文书
python flask框架快速入门
2021/05/14 Python
vue修饰符.capture和.self的区别
2022/04/22 Vue.js