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 相关文章推荐
PHP 采集程序中常用的函数
Dec 09 PHP
php access 数据连接与读取保存编辑数据的实现代码
May 12 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
php实现的双色球算法示例
Jun 20 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 PHP
浅谈PHP中的那些魔术常量
Dec 02 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 模拟$_PUT实现代码
2010/03/15 PHP
php遍历CSV类实例
2015/04/14 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
Vue学习之路之登录注册实例代码
2017/07/06 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
使用python分析git log日志示例
2014/02/27 Python
Python3.2中的字符串函数学习总结
2015/04/23 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
深入理解Python异常处理的哲学
2019/02/01 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
python标记语句块使用方法总结
2019/08/05 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
美国折扣网站:jClub
2017/08/07 全球购物
英语专业毕业个人求职自荐信
2013/09/21 职场文书
小学新教师培训方案
2014/02/03 职场文书
运动会加油稿20字
2014/11/15 职场文书
个人先进事迹材料
2014/12/29 职场文书
运动会开幕词
2015/01/28 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
Python中time与datetime模块使用方法详解
2022/03/31 Python