问答详情
源自:5-3 PHP中的赋值运算符

课程解释的不清不楚

http://img.mukewang.com/58dbd9b70001b09607060214.jpg

(2)“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。


教材里说两个变量共享一块内存,这代码的例子里根本没表现出这点啊,哪有共享内存?

分明是再次赋值覆盖了原来的值,$c输出的还是一个值。

我本以为共享意思是c里面会有两个a的值都存在呢。只一个算什么共享内存。

感觉课程里说的乱乱的



提问者:再码一段 2017-03-30 00:06

个回答

  • 慕粉4340204
    2017-03-30 09:41:36
    已采纳

    共享内存就是,对这个变量不再分配存储空间,可以理解为$c是$a的一个别名,

    如果$a的值改变了,$c的值也会跟着改变

  • 小宝宝的帅宝宝
    2019-03-08 21:35:21

    <?php
        $a = "我在慕课网学习PHP!";
        $b = $a;
        
        $a = "我天天在慕课网学习PHP!";
        $c = &$a;
        
        echo $b."<br />";
        echo $c."<br />";
    ?>


    改变一下    $c = &$a; 和  $a = "我天天在慕课网学习PHP!的的顺序就清楚了;

  • 欧文先森
    2018-12-25 11:35:51

    所以到底想表达什么呢?


  • 慕沐4974640
    2017-08-12 01:16:19

    $c=& $a

    我是这么理解的,变量c引用了  变量a, 因为是应用,当然a的赋值发生变化的时候c也跟着变化,另外a的赋值可写在该赋值的上面或下边

  • 金潭村的小菜鸟
    2017-08-06 22:40:28

    理论上,我明白课程想表达的意思,但是代码看不懂

    输出b为什么是输出第2行的a,而不输出第5行的a ?

    输出c为什么是输出第5行的a,而不输出第2行的a ?

    第2行的a和第5行的a在这个代码里面有没有顺序先后?


  • lingyunkeyan
    2017-07-02 19:51:54

    <?php 

        $a = "我在慕课网学习PHP!";

    $b = $a;

    $a = "我天天在慕课网学习PHP!";

    $c = &$a;

    echo $b."<br />";

    echo $c."<br />";

    ?>

    如果这样输出的结果是不是也一样的呢,把$c放到新赋值的后面这样


  • 何遇2017
    2017-05-29 16:01:58

    c与a是指向同一片地址的

    即c是取a指向地址存储的数据,a和c是同步的。

    那么a地址里存储的值变了,c也跟着变。