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 19 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
Apr 30 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
培养自己的php编码规范
Sep 28 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
PHP递归获取目录内所有文件的实现方法
Nov 01 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
PHP简单留言本功能实现代码
Jun 09 PHP
Django中的cookie与session操作实例代码
Aug 17 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 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
PHP4之COOKIE支持详解
2006/10/09 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
php cli配置文件问题分析
2015/10/15 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
图片完美缩放
2006/09/07 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
在漏洞利用Python代码真的很爽
2007/08/26 Python
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
django 实现简单的插入视频
2020/04/07 Python
如何在sublime编辑器中安装python
2020/05/20 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
毕业自荐书
2013/12/09 职场文书
考试作弊被抓检讨书
2014/01/10 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
小学运动会报道稿
2014/10/04 职场文书
三八妇女节寄语
2015/02/27 职场文书
放假通知范文
2015/04/14 职场文书