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 相关文章推荐
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 PHP
php输入流php://input使用示例(php发送图片流到服务器)
Dec 25 PHP
php中curl使用指南
Feb 05 PHP
PHP记录和读取JSON格式日志文件
Jul 07 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 PHP
PHPMailer发送邮件
Dec 28 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
浅谈Laravel队列实现原理解决问题记录
Aug 19 PHP
基于 Swoole 的微信扫码登录功能实现代码
Jan 15 PHP
PHP实现的AES双向加密解密功能示例【128位】
Sep 03 PHP
PHP命名空间定义与用法实例分析
Aug 14 PHP
laravel框架实现敏感词汇过滤功能示例
Feb 15 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下使用SMTP发邮件的代码
2008/01/10 PHP
PHP输入流php://input介绍
2012/09/18 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
在js中使用&quot;with&quot;语句中跨frame的变量引用问题
2007/03/08 Javascript
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
js省市区级联查询(插件版&amp;无插件版)
2017/03/21 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
python查询mysql,返回json的实例
2018/03/26 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
热能动力工程毕业生自荐信
2013/11/07 职场文书
《春天来了》教学反思
2014/04/07 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
辩论赛新闻稿
2015/07/17 职场文书
七年级思品教学反思
2016/02/20 职场文书
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js