关于变量引用的知识点,请以我们的讲解为理解的基准!
我们来对比两段代码的执行结果。
第一段:
<?php $fo = 5; //$fo的值为5,将5赋值 $bar = $fo; //$bar的值原来为5,现在将值改为6 $bar = 6; //$bar的结果为6 echo $bar.'<br />'; //$fo的结果为5 echo $fo.'<br />'; ?>
第二段:
<?php $fo = 5; //注意,加上了一个&符哟 $bar = &$fo; //给$bar赋值为6 $bar = 6; //$bar的结果为6 echo $bar.'<br />'; //$fo的结果为6 echo $fo.'<br />'; ?>
为什么两个结果都变成6了呢?
我经常跟大家这样来举例。我们可以这样来想象:一个变量名,对应了一个数据值。如下图:
而加上&(and 符后),把变量指向同一个存值空间了,如下图:
也就是不论$fo或$bar的值如何发生变化,$fo变$bar也变,$bar发生变化,$fo也会发生变化。
举个不靠谱的例子,方便你来理解:
你家有只小狗,叫作旺财。又有一只小狗叫作狗蛋。有一天,狗蛋丢了。把狗蛋这个名字给了旺财,那么,你不论是打狗蛋一下,还是打旺财一下都是打的同一条狗
<?php $fo = 5; $bar = $fo; $bar = 'hello,PHP中文网'; echo $fo; ?>