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初学者头疼十四条问题大总结
Nov 12 PHP
php面向对象全攻略 (十四) php5接口技术
Sep 30 PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
如何使用Strace调试工具
Jun 03 PHP
php实现telnet功能示例
Apr 08 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
PHP实现的简单缓存类
Jul 29 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 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
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
PHP对象相关知识总结
2017/04/09 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
ES6 十大特性简介
2020/12/09 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
java程序员面试交流
2012/11/29 面试题
生产厂厂长岗位职责
2013/12/25 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
服装店员工管理制度
2015/08/07 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
四十九个javascript小知识实用技巧
2021/11/20 Javascript