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+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
Nov 01 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
PHP中spl_autoload_register函数的用法总结
Nov 07 PHP
php构造方法中析构方法在继承中的表现
Apr 12 PHP
php7基于递归实现删除空文件夹的方法示例
Jun 15 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
在Laravel 中实现是否关注的示例
Oct 22 PHP
laravel 数据验证规则详解
Oct 23 PHP
Yii框架自定义数据库操作组件示例
Nov 11 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 json_decode函数详细解析
2014/02/17 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
php操作xml入门之cdata区段
2015/01/23 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
PHP设置Cookie的HTTPONLY属性方法
2017/02/09 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
Jquery easyUI 更新行示例
2014/03/06 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
python 多个参数不为空校验方法
2019/02/14 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
2020/11/19 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
工厂门卫岗位职责范本
2014/04/04 职场文书
大专生求职信
2014/06/29 职场文书
慰问信模板
2015/02/14 职场文书
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers