(2)“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
教材里说两个变量共享一块内存,这代码的例子里根本没表现出这点啊,哪有共享内存?
分明是再次赋值覆盖了原来的值,$c输出的还是一个值。
我本以为共享意思是c里面会有两个a的值都存在呢。只一个算什么共享内存。
感觉课程里说的乱乱的
共享内存就是,对这个变量不再分配存储空间,可以理解为$c是$a的一个别名,
如果$a的值改变了,$c的值也会跟着改变
<?php
$a = "我在慕课网学习PHP!";
$b = $a;
$a = "我天天在慕课网学习PHP!";
$c = &$a;
echo $b."<br />";
echo $c."<br />";
?>
改变一下 $c = &$a; 和 $a = "我天天在慕课网学习PHP!的的顺序就清楚了;
所以到底想表达什么呢?
$c=& $a
我是这么理解的,变量c引用了 变量a, 因为是应用,当然a的赋值发生变化的时候c也跟着变化,另外a的赋值可写在该赋值的上面或下边
理论上,我明白课程想表达的意思,但是代码看不懂
输出b为什么是输出第2行的a,而不输出第5行的a ?
输出c为什么是输出第5行的a,而不输出第2行的a ?
第2行的a和第5行的a在这个代码里面有没有顺序先后?
<?php
$a = "我在慕课网学习PHP!";
$b = $a;
$a = "我天天在慕课网学习PHP!";
$c = &$a;
echo $b."<br />";
echo $c."<br />";
?>
如果这样输出的结果是不是也一样的呢,把$c放到新赋值的后面这样
c与a是指向同一片地址的
即c是取a指向地址存储的数据,a和c是同步的。
那么a地址里存储的值变了,c也跟着变。