关于PHP的debug_zval_dump和xdebug_debug_zval
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于PHP的debug_zval_dump和xdebug_debug_zval,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3140字,纯文字阅读大概需要5分钟。
内容图文
![关于PHP的debug_zval_dump和xdebug_debug_zval](/upload/InfoBanner/zyjiaocheng/151/62ddcb37158b454990f6172ed83feb39.jpg)
例如:
$var = "laruence";
$var_1 = &$var;
$var_2 = &$var;
$var1 = $var;
$var2 = $var;
$var3 = $var;
$var4 = $var;
//debug_zval_dump得到的refcount等于1
//xdebug_debug_zval得到的refcount等于3
虽然看网上说的refcount表示有多少个变量名指向这个zval容器,但是还是不知道为什么结果不一致。也没有找到关于这里个函数详细的介绍。。。
不过我总结出了如下规律:
关于xdebug_debug_zval:
当有变量引用时,用xdebug_debug_zval的到的结果为:is_ref=1;refcount=变量被引用的数量(算上变量本身)
例如
$var = "laruence"; //第1次
$var_1 = &$var; //第2次
$var1 = $var;
$var2 = $var;
$var3 = $var;
$var4 = $var;
所以,由xdebug_debug_zval可以得到is_red=1;refcount=2;
当变量没有发生引用时,用xdebug_debug_zval的到的结果为:is_ref=0;refcount=变量被复制的数量(算上变量本身)
例如
$var = "laruence"; //第1次
$var1 = $var; //第2次
$var2 = $var; //第3次
$var3 = $var; //第4次
$var4 = $var; //第5次
所以,由xdebug_debug_zval可以得到is_red=0;refcount=5;
关于debug_zval_dump:
当有变量引用时,用debug_zval_dump的到的结果为:refcount=1(始终=1)
例如
$var = "laruence";
$var_1 = &$var;
$var1 = $var;
$var2 = $var;
$var3 = $var;
$var4 = $var;
所以,由debug_zval_dump可以得到:refcount=1;
当变量没有发生引用时,用debug_zval_dump的到的结果为:refcount=变量被复制的数量(算上变量本身)+1
例如
$var = "laruence"; //第1次
$var1 = $var; //第2次
$var2 = $var; //第3次
$var3 = $var; //第4次
$var4 = $var; //第5次
所以,由xdebug_debug_zval可以得到is_red=0;refcount=6;
回复内容:
各位大神,我想问一下为什么debug_zval_dump和xdebug_debug_zval得到的refcount不一样呢?
例如:
$var = "laruence";
$var_1 = &$var;
$var_2 = &$var;
$var1 = $var;
$var2 = $var;
$var3 = $var;
$var4 = $var;
//debug_zval_dump得到的refcount等于1
//xdebug_debug_zval得到的refcount等于3
虽然看网上说的refcount表示有多少个变量名指向这个zval容器,但是还是不知道为什么结果不一致。也没有找到关于这里个函数详细的介绍。。。
不过我总结出了如下规律:
关于xdebug_debug_zval:
当有变量引用时,用xdebug_debug_zval的到的结果为:is_ref=1;refcount=变量被引用的数量(算上变量本身)
例如
$var = "laruence"; //第1次
$var_1 = &$var; //第2次
$var1 = $var;
$var2 = $var;
$var3 = $var;
$var4 = $var;
所以,由xdebug_debug_zval可以得到is_red=1;refcount=2;
当变量没有发生引用时,用xdebug_debug_zval的到的结果为:is_ref=0;refcount=变量被复制的数量(算上变量本身)
例如
$var = "laruence"; //第1次
$var1 = $var; //第2次
$var2 = $var; //第3次
$var3 = $var; //第4次
$var4 = $var; //第5次
所以,由xdebug_debug_zval可以得到is_red=0;refcount=5;
关于debug_zval_dump:
当有变量引用时,用debug_zval_dump的到的结果为:refcount=1(始终=1)
例如
$var = "laruence";
$var_1 = &$var;
$var1 = $var;
$var2 = $var;
$var3 = $var;
$var4 = $var;
所以,由debug_zval_dump可以得到:refcount=1;
当变量没有发生引用时,用debug_zval_dump的到的结果为:refcount=变量被复制的数量(算上变量本身)+1
例如
$var = "laruence"; //第1次
$var1 = $var; //第2次
$var2 = $var; //第3次
$var3 = $var; //第4次
$var4 = $var; //第5次
所以,由xdebug_debug_zval可以得到is_red=0;refcount=6;
内容总结
以上是互联网集市为您收集整理的关于PHP的debug_zval_dump和xdebug_debug_zval全部内容,希望文章能够帮你解决关于PHP的debug_zval_dump和xdebug_debug_zval所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。