php5.3 强制分裂

$a = 3
$b = &$a;
$b = 5

echo $a,$b //5,5

这时候是分享
php5.3 强制分裂_第1张图片

现在是公用结构体 refcount_gc 和 is_ref_gc 都发生了变化
php5.3 强制分裂_第2张图片

引用时,is_ref_gc=1 是说这个结构体与变量是引用关系,改的时候,不分裂,值直接改变,所有指向此结构体的变量,值都变化

都对结构体有主权,并不需要分裂 ,两者谁来改,都是改这个值
php5.3 强制分裂_第3张图片


$a = 3
$b = $a;
$c = &$a;
$c = 5;
echo $a,$b,$c;
$a = 3
/*
{
	value:3 
	refcount_gc:1
	is_ref_gc:0
}
*/

$b=$a;
/*
{
	value:3 
	refcount_gc:2
	is_ref_gc:0
}
*/

$c=&$a;
/*
//不会是这样变,否则 $b将会受干扰
{
	value:3 
	refcount_gc:3
	is_ref_gc:1
}

#如果is_ref_gc  0  到 1 的过程中, refcount_gc>1  ,说明多个人共享一台电视机,突然来个人说要公用,只能和其它人某个人公用,其它人不会受到干扰,需要强制分裂。
*/

b 分裂一份结构体
{
	value:3 
	refcount_gc:1
	is_ref_gc:0
}
*/

a,c  这样在修改不会影响b,只会影响a和c
{
	value:3
	refcount_gc :2
	is_ref_gc:1
}
$c = 5

$a = 3
$b = $a;
KaTeX parse error: Expected 'EOF', got '&' at position 5: c = &̲a;
$c = 5;
echo a , a, a,b,$c //5,3,5

php7后续会写

你可能感兴趣的:(PHP)