为了账号安全,请及时绑定邮箱和手机立即绑定

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

<?php

$a="123";

$b=$a;

$c = &$a;

$a = "321";


echo $b;

echo "<br/>";

echo $c;

?>

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

正在回答

4 回答

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

0 回复 有任何疑惑可以回复我~

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

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

1 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

cnsql

如果有很多$a变量,$c = &$a;意思就取代码最下面那个$a变量吗
2019-01-23 回复 有任何疑惑可以回复我~
#2

就像ya 回复 cnsql

php和java原来还有这个不一样的地方我以为是想通的呢
2019-05-14 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP入门篇
  • 参与学习       455957    人
  • 解答问题       6306    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信