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

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

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

http://img1.sycdn.imooc.com//58da6f150001064a08110577.jpg

http://img1.sycdn.imooc.com//58da6f160001ba2208120451.jpg


正在回答

8 回答

第一题:

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

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


第二题:

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

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

所以输出的都是一样的:

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

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

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

未必顽固 提问者

非常感谢!
2017-03-30 回复 有任何疑惑可以回复我~

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

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

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

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

老铁,你这顺序不对啊

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

老铁,你这顺序不对啊。

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

写成这样就能看出区别:

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

$b = $a;

$c = &$a;

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

echo $b."<br />";

echo $c."<br />";


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

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

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

$c=$a;

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

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

举报

0/150
提交
取消

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

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