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 相关文章推荐
example1.php
Oct 09 PHP
PHP&amp;MYSQL服务器配置说明
Oct 09 PHP
建立动态的WML站点(二)
Oct 09 PHP
php获取后台Job管理的实现代码
Jun 10 PHP
PHP简洁函数小结
Aug 12 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
php生成mysql的数据字典
Jul 07 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
Mar 01 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
php的单例模式及应用场景详解
Feb 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
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
javascript实现的listview效果
2007/04/28 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
Js 获取、判断浏览器版本信息的简单方法
2016/08/08 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
详解Vue之计算属性
2020/06/20 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
Python实现把回车符\r\n转换成\n
2015/04/23 Python
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
Python和Go语言的区别总结
2019/02/20 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
汽车销售求职自荐信
2013/10/01 职场文书
毕业自我鉴定
2013/11/05 职场文书
保险专业自荐信范文
2014/02/20 职场文书
高一学生期末评语
2014/04/25 职场文书
学校四群教育实施方案
2014/06/12 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书