Home  >  Article  >  Backend Development  >  php debug_backtrace, debug_print_backtrace and anonymous functions_PHP tutorial

php debug_backtrace, debug_print_backtrace and anonymous functions_PHP tutorial

WBOY
WBOYOriginal
2016-07-20 10:59:18859browse

This article will introduce you to some usage analysis of debug_backtrace, debug_print_backtrace and anonymous functions. Students who need to know more can refer to them. ​

debug_print_backtrace, the difference is that it will directly print the backtrace information.

debug_print_backtrace() is a very low-key function, few people pay attention to it.
But when I call one object to another object and then call other objects and a function in the file and an error occurs, it is laughing.
debug_print_backtrace() can print out the calling process of a page, making it clear where it came from and where it went.
However, this is a proprietary function of PHP5. Fortunately, it has been implemented in pear,

1. debug_backtrace It can backtrace the calling information of the function, which can be said to be a debugging tool

The code is as follows Copy code
 代码如下 复制代码

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                (                )
      )
)*/

one();

function one() { two(); }

function two() { three(); }

function three() { print_r( debug_backtrace() ); }

/*Output:

Array(

[0] => Array (

​​​​​​[file] =>                                                                                               [line] => 10

[function] => three
 代码如下 复制代码

echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
    }, 'hello-world'
);
// 输出 helloWorld
?>

                          [args] => ), [1] => Array ( ​​​​​[file] =>                                                                                           [line] => 6 [Function] = & GT; TWO                               [args] => ), [2] => Array (                                                                                                                                                                                                                                                                                                                                          [line] => 3                                                                                                     [function] =>                          [args] => ) )*/
2. debug_print_backtrace The difference is that it will directly print the backtrace information. 3. Anonymous function Anonymous functions, also called closures, have been added since PHP 5.3. The keyword use is also in anonymous functions. Let’s first look at an example of an anonymous function as a parameter of a callback function
The code is as follows Copy code
echo preg_replace_callback('~-([a-z])~', function ($match) { Return strtoupper($match[1]); }, 'hello-world' ); // Output helloWorld ?>

Keyword connecting closure and external variables: USE
Closures can save some variables and values ​​​​in the context of the code block. By default in PHP, anonymous functions cannot call the context variables of the code block in which they are located, but need to use the use keyword

The code is as follows Copy code
 代码如下 复制代码


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();


function test(){ $num = 2;

$array = array(1,2,3,4,5,6,7,8);

Print_r(array_filter($array, function($param) use ($num){ );} test();
http://www.bkjia.com/PHPjc/445616.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/445616.html
TechArticleThis article will introduce to you some usage analysis of debug_backtrace, debug_print_backtrace and anonymous functions. Students who need to know more are welcome to enter. refer to. debug_print_backtrace, unlike...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn