$a = &$b

看时间前后,一般以后面时间赋值的那个为准,一个改变,另一个也改变了
$b = &$a;
$b = 100; (这句话不是给$b赋值100, 而是给$b所存储的地址的空间的变量和变量代码赋值)
$a = 100; (这个时候 当$a被别人引用后, 所有给他的赋值, 那指向他的变量-地址变量-也会有所反映的)
============
$a = 100;
$b = &$a;

$b 是一块内存的代号,这个内存里包含的一个4字节的地址编码,

这个地址所对应的空间才是真正内容所保存的地方。当我们访问$b的时候,系统操作系统或者底层的代码会获得$b所对应的地址,然后把这个地址所对应的值返回给这个变量,方便我们操作,这个就是高级语言的特征,不然直接操作地址,就是机器语言或者很底层的语言了。

-----

$a直接对应一个数字,因为如果数字一般比较小,如果还要去引用另一块空间,太麻烦了。

------------------------------

这么说吧 如果给$b = 100, 那$a 也会 = 100,

但如果让$b = 100, 然后让$a = 200, 那最后$b就会变成200,

因为 $a 所保存的实际上是$b的地址,然后操作地址的话,值自然也就操作改变了。

-----

$a = 100;

$b = &$a;

var_dump($a);

$b = 200;

$a = 300;

var_dump($b);

100-200-300- 一直在变化---

可以这么理解,变量对应的地址,然后地址对应的才是变量,中间这一环是系统帮我们完成的,

看山不是山

原文地址:https://www.cnblogs.com/qinqiu/p/4476676.html