• 技术文章 >后端开发 >php教程

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

    2016-05-16 20:29:44原创478
    本文实例讲述了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程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php生成html文件方法总结_php实例 下一篇:php实现的树形结构数据存取类实例_php技巧
    千万级数据并发解决方案

    相关文章推荐

    • thinkphp 标签有关问题 语法 小弟我想在某个标签前 输出{ 该怎么实现 • 想知道这段数字是用什么算法算出来的,该如何解决 • sql中执行没有关问题php中执行出错~ • 刚写的一个文件下传类。欢迎评点 • php url地址重写的有关问题
    1/1

    PHP中文网