所属栏目:发布日期:2016-09-27 08:11浏览量:2729作者:admin
1.debug_zval_dump(),它与var_dump()的区别就是它新增了一个值refcount,即记录变量被引用的次数。同时它还可以打印几个变量。
如果你引用计数器不懂的话,可以参考:PHP垃圾回收机制引用计数器概念
$a = "www.phpddt.com";
$b = &$a;
//如果你安装了xdebug的话可以用xdebug_debug_zval()
xdebug_debug_zval( 'a' ); //refcount=2, is_ref=0
//debug_zval_dump() 函数只输出了 php 内部实现的引用计数机制,
//如果程序中使用 & 取地址符 不被算在内,同样它也没有输出is_ref 的值
debug_zval_dump($a); //refcount(3)
结果如下:
a:
(refcount=2, is_ref=1),
string 'www.phpddt.com' (length=14)
string(14) "www.phpddt.com" refcount(1)
2.debug_print_backtrace() debug_backtrace() 只是前者直接打印出来了而已。查看整个程序的调用栈,用来查看瞬间函数调用栈,方便查错。
看看手册上这个例子:
function a() {
b();
}
function b() {
c();
}
function c(){
debug_print_backtrace();
}
a();
?>
结果如下:
#0 c() called at [E:\www\test\debug.php:6]
#1 b() called at [E:\www\test\debug.php:3]
#2 a() called at [E:\www\test\debug.php:11]