首页 / PHP / PHP垃圾回收机制引用计数器概念分析
PHP垃圾回收机制引用计数器概念分析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP垃圾回收机制引用计数器概念分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1291字,纯文字阅读大概需要2分钟。
内容图文
![PHP垃圾回收机制引用计数器概念分析](/upload/InfoBanner/zyjiaocheng/269/98bc62fef80f4315a080992328fabc62.jpg)
如果你安装了xdebug,就可以用xdebug_debug_zval()显示“zval”的信息了。如下:
代码如下:
<?php
$str = "jb51.net";
xdebug_debug_zval('str');
结果:
str:
(refcount=1, is_ref=0),
string 'jb51.net' (length=10)
只有当变量容器在”refcount“变成0时就被销毁.当你unset()一个变量时,想要的“zval”中refcount就会减1,再来说说前几天遇到的unset引用问题:
代码如下:
<?php
$a = "aaa";
$b = & $a;
unset($a);
//echo $b; //这里依然会输出aaa,用xdebug_debug_zval打印你就知道为什么了
xdebug_debug_zval("b");
结果:
b:
(refcount=1, is_ref=0),string 'aaa' (length=3)
继续说引用计数器问题,对于array和object符合类型情况又不一样了:
代码如下:
<?php
$arr = array( 'a' => 'aaa', 'b' => "bbb" );
xdebug_debug_zval( 'arr' );
$arr['aaa'] = $arr['a'];
xdebug_debug_zval( 'arr' );
?>
结果:
arr:
(refcount=1, is_ref=0),
array
'a' => (refcount=1, is_ref=0),string 'aaa' (length=3)
'b' => (refcount=1, is_ref=0),string 'bbb' (length=3)
arr:
(refcount=1, is_ref=0),
array
'a' => (refcount=2, is_ref=0),string 'aaa' (length=3)
'b' => (refcount=1, is_ref=0),string 'bbb' (length=3)
'aaa' => (refcount=2, is_ref=0),string 'aaa' (length=3)
可以看到看到原有的数组元素和新添加的数组元素关联到同一个"refcount"2的zval变量容器.这里我也只是起到抛砖引玉的作用。
具体关于PHP引用计数器可以参照手册:http://php.com/manual/zh/features.gc.refcounting-basics.php
内容总结
以上是互联网集市为您收集整理的PHP垃圾回收机制引用计数器概念分析全部内容,希望文章能够帮你解决PHP垃圾回收机制引用计数器概念分析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。