php 内核变量 引用计数器写时复制
2014-05-04 12:36
573 查看
写时复制,是一个解决内存复用的方法,就是你在php语言层,如$d=$c=$b=$a='value';把$a赋给另一个或多个变量,这时这个变量都只占用一个内存块,当其中一个变量值改变时,才会开辟另一个内存块来存储新的值。其实这也算一种引用,只不过这种引用当变量值的改变时消失。
做个测试
<?php
xdebug_debug_zval(a);
$b = $a;
xdebug_debug_zval(a);
$a="change value";
xdebug_debug_zval(a);
?>
--------------------------------
做个测试
<?php
xdebug_debug_zval(a);
$b = $a;
xdebug_debug_zval(a);
$a="change value";
xdebug_debug_zval(a);
?>
--------------------------------
a:
(refcount=1, is_ref=0),
string
'this is a' (length=9)
a:
(refcount=2, is_ref=0),
string
'this is a' (length=9)
a:
(refcount=1, is_ref=0),
string
'change value' (length=12)
php内核中使用了引用计数器 is_ref:bool值,标识变量是否引用集合(就是标识变量是否被'&'引用) refcount:计算指向引用集合的变量个数
相关文章推荐
- 理解php内核的 引用计数器与写时复制
- php变量的引用计数器和写时复制
- PHP内核探索:引用计数与写时复制
- PHP内核探索:变量的引用与计数规则
- PHP内核探索之变量(2)-理解引用
- PHP变量引用计数,写时复制详解
- 浅谈PHP中的变量 zval变量容器 PHP引用计数器
- PHP内核探索之变量(2)-理解引用
- PHP内核探索之变量(2)-理解引用
- 变量赋值(引用) php内核的实现(二)
- PHP内核探索:引用计数与写时复制
- PHP内核探索之变量(2)-理解引用
- PHP源码分析-变量的引用计数、写时复制(Reference counting & Copy-on-Write)
- PHP内核探索之变量(2)-理解引用
- 深入PHP内核(一)——弱类型变量原理探究
- php变量在内核中的存储方式
- php中变量引用&不可与global共同使用
- php的变量引用,函数引用,对象引用
- PHP扩展开发与内核应用阅读笔记---php的作用域以及如何在扩展中定义,查找php变量
- PHP面试解读 - PHP基础篇 - 引用变量