一.$a=3 $b=5
/如果是新手的话,可能会对这个'='号产生误会, 这个等号 就是赋值用的.
$b=$a;
//$b = $a ;
//发生了什么? 把$b的值读出来,再把值放到$b的空间里,即 赋值给$b;
//就是把$b的值,传递给$a,因此叫传值赋值.
echo $a; //5
//在这个过程中,仅仅参考了一个$b的值,然后,把$b的值,复制一份到a的空间里去了
//之后,$a,$b,两者之间还是没有关系,因为$a $b的值还是放在了各自的空间里
二. $a=3 $b = 5 ;
//下面这行代码
//把$a这把钥匙的指向,指向了$b的地址.
//即:$a , $b 指向同一个地址
//就像,两把钥匙指向了同一个房间
$a = &$b;
echo $a .$b // 5 5 ;
$b = 9;
echo $a , $b // 99;
//----------------------------------看看下面的问题------------------------------------//
unset($b);
echo $a;//9
/*
原因很简单
因为有$a,$b连个变量指向了同一地址,
$b销毁了,$a没有销毁
变量有一个机制,当某段地址存的值,有一个变量在指向他的时候,就不会被回收.(这也是简单的回收机制)
张三===>[饭桌]<===李四
张三,转一下桌子,在李四看来,桌子的盘子的盘子也变了, $a,$b值,一改全改
unset($b);
张三 人走了,但是李四还没有走,服务员是否会去清理桌子吗?
答案:不会的,因为还有李四坐在桌子前
如果,李四走了,也给unset()掉,那么桌子上的饭菜才能真正的清掉