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数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
PHP判断远程图片是否存在的几种方法
May 04 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
Nov 19 PHP
PHP输出九九乘法表代码实例
Mar 27 PHP
PHP文件读取功能的应用实例
May 08 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
Dec 07 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
Sep 26 PHP
PHP自定义多进制的方法
Nov 03 PHP
微信小程序 消息推送php服务器验证实例详解
Mar 30 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
Apr 16 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 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+MYSQL开发工具及资源收藏
2007/01/02 PHP
JS实现php的伪分页
2008/05/25 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
JavaScript开发规范要求(规范化代码)
2010/08/16 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
编写简单的Python程序来判断文本的语种
2015/04/07 Python
Python探索之ModelForm代码详解
2017/10/26 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
pandas实现选取特定索引的行
2018/04/20 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
JAVA代码查错题
2014/10/10 面试题
酒店拾金不昧表扬信
2014/01/18 职场文书
食品安全检查制度
2014/02/03 职场文书
中学生思想品德评语
2014/12/31 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL