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 ( ) ) )*/
三、匿名函数
从PHP 5.3开始新增了匿名函数(Anonymous functions),也叫闭包函数(closures),关键字 use 同时也在匿名函数中.
先看一下匿名函数的示例,作为回调函数的参数,代码如下:
<?php echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world' ); // 输出 helloWorld ?>
闭包可以保存所在代码块上下文的一些变量和值,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程序设计有所帮助。