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

为什么我$c=$a;和$c=&$a;输出的是一样的

为什么我$c=$a;和$c=&$a;输出的是一样的

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

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


提问者:未必顽固 2017-03-28 22:13

个回答

  • qq_醉生梦死_11
    2017-03-28 23:29:37
    已采纳

    第一题:

    “我在慕课网学习php”从$a赋值给$b,当你输出$b=我在慕课网学习php”----这个应该没有异议吧。

    接下来第5步你$a从新赋值为“我天天在慕课网学习”并且赋值给$c ,所以$c 输出“我天天在慕课网学习


    第二题:

    “我在慕课网学习php”从$a赋值给$b,当你输出$b=我在慕课网学习php”----这个一样的应该没有异议吧。

    接下来第5步你$a从新赋值为“我天天在慕课网学习”并且赋值给$c ,所以$c 输出“我天天在慕课网学习。

    所以输出的都是一样的:

    唯一不同的就是&符号,第二题当你$a和$c不管谁发生了变化值都一起变化。

    但是第一题就不会了,如果你从新给$a$c赋值的话他们只改变他们自己。这是区别。

  • 慕圣3571134
    2018-12-19 13:22:36

    学过c语言的指针概念就不难理解&的意思了。

  • 幕布斯4257951
    2017-06-05 11:04:22

    我的理解是&$a的含义是加了&后就会变成是引用最新的a的定义值

  • 何遇2017
    2017-05-29 16:03:23

    老铁,你这顺序不对啊

  • 杳渺星河月半轮
    2017-04-07 21:14:49

    老铁,你这顺序不对啊。

  • 慕慕5656945
    2017-03-29 13:30:38

    写成这样就能看出区别:

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

    $b = $a;

    $c = &$a;

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

    echo $b."<br />";

    echo $c."<br />";


  • Blurth
    2017-03-28 23:28:42

    这是 传址 假设变量都有自己独立的仓库    简单的说 就是&$a    就是指向  $a 这个变量的仓库 所以值就是相等的

  • call_cheuk
    2017-03-28 23:26:48

    $c=$a;

    放在第五行之后了,放在第五行之后,相当于把$a的值赋予$c,所以得到跟a一样的值;你放到第五行之前,打印$c就会发现没有值,因为$a刚开始没有值