php中debug_backtrace、debug_print_backtrace和匿名函数用法实例

2015-01-24信息快讯网

这篇文章主要介绍了php中debug_backtrace、debug_print_backtrace和匿名函数用法,以实例形式分析了debug_backtrace和debug_print_backtrace函数在调试过程中的作用,并分析了PHP5.3新增匿名函数的用法,需要的朋友可以参考下

本文实例讲述了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计划任务之ignore_user_abort函数实现方法
WampServer下安装多个版本的PHP、mysql、apache图文教程
php实现utf-8转unicode函数分享
windows中为php安装mongodb与memcache
php使用fputcsv()函数csv文件读写数据的方法
php下Memcached入门实例解析
ioncube_loader_win_5.2.dll的错误解决方法
php连接oracle数据库及查询数据的方法
php从memcache读取数据再批量写入mysql的方法
PHP跨平台获取服务器IP地址自定义函数分享
PHP中使用xmlreader读取xml数据示例
dedecms集成财付通支付接口
为PHP5.4开启Zend OPCode缓存
php中mail函数发送邮件失败的解决方法
腾讯微博提示missing parameter errorcode 102 错误的解决方法
php提示Warning:mysql_fetch_array() expects的解决方法
PHP使用array_multisort对多个数组或多维数组进行排序
php中Array2xml类实现数组转化成XML实例
php生成html文件方法总结
php中随机函数mt_rand()与rand()性能对比分析
PHP内置的Math函数效率测试
Codeigniter购物车类不能添加中文的解决方法
thinkphp中memcache的用法实例
ThinkPHP自动完成中使用函数与回调方法实例
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
PHP使用get_headers函数判断远程文件是否存在的方法
PHP中array_slice函数用法实例详解
php中in_array函数用法探究
php使用str_replace实现输入框回车替换br的方法
php中mt_rand()随机数函数用法
PHP中substr()与explode()函数用法分析
ThinkPHP中RBAC类的四种用法分析
php中base64_decode与base64_encode加密解密函数实例
php中convert_uuencode()与convert_uuencode函数用法实例
thinkphp使用literal防止模板标签被解析的方法
PHP循环遍历数组的3种方法list()、each()和while总结
php集成环境xampp中apache无法启动问题解决方案
©2014-2024 dbsqp.com