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 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
用PHP查询域名状态whois的类
Nov 25 PHP
php 冒泡排序 交换排序法
May 10 PHP
几个有用的php字符串过滤,转换函数代码
May 01 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
php 运算符与表达式详细介绍
Nov 30 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
PHP计算近1年的所有月份
Mar 13 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
PHP的PDO大对象(LOBs)
Jan 27 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
BBS(php &amp; mysql)完整版(六)
2006/10/09 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
ini_set的用法介绍
2014/01/07 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
javascript连续赋值问题
2015/07/08 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
深入学习Python中的上下文管理器与else块
2017/08/27 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
CSS3 display知识详解
2015/11/25 HTML / CSS
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
linux面试题参考答案(1)
2016/01/22 面试题
研发工程师岗位职责
2014/04/28 职场文书
2014年冬季防火方案
2014/05/21 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
详解Redis集群搭建的三种方式
2021/05/31 Redis
mysql如何配置白名单访问
2021/06/30 MySQL
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android