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

来源:5-3 PHP中的赋值运算符

qq_慕慕6488356

2018-12-25 20:11

<?php

$a="123";

$b=$a;

$c = &$a;

$a = "321";


echo $b;

echo "<br/>";

echo $c;

?>

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

写回答 关注

4回答

  • 慕粉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

    就像ya 回复cnsql

    php和java原来还有这个不一样的地方我以为是想通的呢

    2019-05-14 20:34:41

    共 2 条回复 >

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

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

PHP入门篇

PHP入门教程轻松学习,行业大牛帮您快速掌握PHP编程基础知识。

455957 学习 · 6306 问题

查看课程

相似问题