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

定义变量所在的位置对调用的影响如何判断?

<?php

$a="123";

$b=$a;

$c = &$a;

$a = "321";


echo $b;

echo "<br/>";

echo $c;

?>

此代码中, $c所在的位置是在二次定义的$a的上方,为何$c调用的值不是首次定义的123,而是下方的321?

提问者:qq_慕慕6488356 2018-12-25 20:11

个回答

  • 慕粉5524373
    2019-08-19 15:28:19

    其实可以这样理解:
    $a 他刚开始=123的,而后面你又赋予了¥a=321
    假如你不加&的话,那么就是直接=123,这个值
    假如你加了&的话,那么得到的就是最新的=321这个值
    就算你后面再填写一行代码$a = "333"; 加了$的会直接变化成333这个值

  • 慕少8198119
    2019-01-22 19:21:11

    第二次定义a的时候,系统给a分配的内存地址没有变,还是上次那块地址,里面装的东西变成了新的。

    让c也指向那块地址后,输出的c自然也就是新的a值。

  • Mayukiii73
    2018-12-28 12:24:33

    顺序从上往下排就可以,首先$a=123;的,当$c = &$a; 的时候$c就等于123;然后$a从新被定义为321,这时候取$c的值还是要被$a赋值的,所以$c就变成了321

  • 脚下踩着蕉皮
    2018-12-25 21:44:37

    因为你的c取了a的地址后,a中的值有再次刷新呀