看时间前后,一般以后面时间赋值的那个为准,一个改变,另一个也改变了
$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- 一直在变化---
可以这么理解,变量对应的地址,然后地址对应的才是变量,中间这一环是系统帮我们完成的,
看山不是山