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

yipeiwu_com5年前PHP代码库

本文实例讲述了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程序设计有所帮助。

相关文章

在WordPress中使用PHP脚本来判断访客来自什么国家

区分访客国家有什么用? 这里是几个我利用该功能的例子. 1.区分网站功能 这个博客有翻译文章的功能, 这是为了方便海外访客阅读文章, 但对中国人显得十分多余. 所以我通过 IP...

PHP数组操作类实例

本文实例讲述了PHP数组操作类。分享给大家供大家参考。具体如下: class ArrayHelper{ /** * 从数组中删除空白的元素(包括只有空白字符的元素)...

php实现基于pdo的事务处理方法示例

本文实例讲述了php实现基于pdo的事务处理方法。分享给大家供大家参考,具体如下: 实例1: try {} catch () {} 形式 <?php $dsn = 'm...

ThinkPHP使用心得分享-分页类Page的用法

ThinkPHP中的Page类在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page类: 复制代码 代码如下:imp...

PHP中Cookie的使用详解(简单易懂)

PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆 什么是cookie 服务器在客户端保存用户的信息,比如登录名,密...