标签:扩展 port static 过程 tin 参数 方法 nbsp VID
#开发过程中,修改代码或者调试代码,想知道问题出现在哪里,往往是一步步的去排除问题。利用debug_backtrace整个过程的调用过程,并能回溯到最开始调用的地方,便于开发和排查。 #说明:debug_backtrace ([int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [,int $limit = 0 ]]) : array 产生一条回溯跟踪 #参数: options #options: DEBUG_BACKTRACE_IGNORE_ARGS 是否忽略 "args" 的索引,包括所有的 function/method 的参数,能够节省内存开销。 #options: DEBUG_BACKTRACE_PROVIDE_OBJECT 是否填充 "object" 的索引 #参数: limit 截至 5.4.0,这个参数能够用于限制返回堆栈帧的数量。 默认为 (limit=0) ,返回所有的堆栈帧 #返回值:返回一个包含众多关联的array #array: __FUNCTION__ 方法名称 #array: __FILE__ 文件名称 #array: __LINE__ 行数 #array: __CLASS__ 类名称 #array: type 当前调用的类型。如果是一个方法,会返回 "->"。如果是一个静态方法,会返回 "::"。 如果是一个函数调用,则返回空。 #array: args 如果在一个函数里,这会列出函数的参数。 如果是在一个被包含的文件里,会列出包含的文件名。 /** * php扩展 - 错误处理 * debug_backtrace 产生一条回溯跟踪 */ class backtrace{ public function backtrace_test($str) { echo "\ntest: $str"; echo "<pre>"; var_dump(debug_backtrace()); echo "</pre>"; } public static function backtrace_test1($str) { echo "\ntest: $str"; echo "<pre>"; var_dump(debug_backtrace()); echo "<pre/>"; } } $backtrace = new backtrace(); $backtrace->backtrace_test("debug_backtrace"); $backtrace::backtrace_test1("debug_backtrace1"); /* 打印结果: test: debug_backtrace array(1) { [0]=> array(7) { ["file"]=> string(36) "/var/www/laravel/error_reporting.php" ["line"]=> int(23) ["function"]=> string(14) "backtrace_test" ["class"]=> string(9) "backtrace" ["object"]=> object(backtrace)#1 (0) { } ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> string(15) "debug_backtrace" } } } test: debug_backtrace1 array(1) { [0]=> array(6) { ["file"]=> string(36) "/var/www/laravel/error_reporting.php" ["line"]=> int(24) ["function"]=> string(15) "backtrace_test1" ["class"]=> string(9) "backtrace" ["type"]=> string(2) "::" ["args"]=> array(1) { [0]=> string(16) "debug_backtrace1" } } } */
标签:扩展 port static 过程 tin 参数 方法 nbsp VID
原文地址:https://www.cnblogs.com/arnoldlivip/p/10453650.html