3.3.5 变量引用
最后更新于:2022-04-02 00:18:22
变量引用很多老师喜欢来用C语言的指针来去讲解。我们作为有这么多年开发和教学经验的人来说——大多数学习PHP的人来说根本不了解C语言。
使用C语言一指针来讲解变量引用,我们觉得画蛇添足。并且,不利于没有C语基础的朋友们学习。
关于变量引用的知识点,请以我们的讲解为理解的基准!
我们来对比两段代码的执行结果:
第一段代码,没有任何区别。跟我们原有的PHP代码一模一样:
~~~
';
//$fo的结果为5
echo $fo.'
'; ?> ~~~ 第二段代码: ~~~ '; //$fo的结果为6 echo $fo.'
'; ?> ~~~ 为什么两个结果都变成6了呢? 我经常跟大家这样来举例。我们可以这样来想象:一个变量名,对应了一个数据值。如下图: ![2015-08-02/55bdc64daf9e3](http://box.kancloud.cn/2015-08-02_55bdc64daf9e3.png) 而加上&(and 符后),把变量指向同一个存值空间了,如下图: ![2015-08-02/55bdc68312f9b](http://box.kancloud.cn/2015-08-02_55bdc68312f9b.png) 也就是不论$fo或$bar的值如何发生变化,$fo变$bar也变,$bar发生变化,$fo也会发生变化。 举个不靠谱的例子,方便你来理解: 你家有只小狗,叫作李文凯。又有一只小狗叫作狗蛋。有一天,你把狗蛋给吃了。把狗蛋这个名字给了李文凯 那么,你不论是打狗蛋一下,还是打李文凯一下都是打的同一条狗。 * * * * * 注:如果你理解、了解、熟悉C语言的指针。可自行用指针方式来理解,不在本文的讨论范围内。
';
'; ?> ~~~ 第二段代码: ~~~ '; //$fo的结果为6 echo $fo.'
'; ?> ~~~ 为什么两个结果都变成6了呢? 我经常跟大家这样来举例。我们可以这样来想象:一个变量名,对应了一个数据值。如下图: ![2015-08-02/55bdc64daf9e3](http://box.kancloud.cn/2015-08-02_55bdc64daf9e3.png) 而加上&(and 符后),把变量指向同一个存值空间了,如下图: ![2015-08-02/55bdc68312f9b](http://box.kancloud.cn/2015-08-02_55bdc68312f9b.png) 也就是不论$fo或$bar的值如何发生变化,$fo变$bar也变,$bar发生变化,$fo也会发生变化。 举个不靠谱的例子,方便你来理解: 你家有只小狗,叫作李文凯。又有一只小狗叫作狗蛋。有一天,你把狗蛋给吃了。把狗蛋这个名字给了李文凯 那么,你不论是打狗蛋一下,还是打李文凯一下都是打的同一条狗。 * * * * * 注:如果你理解、了解、熟悉C语言的指针。可自行用指针方式来理解,不在本文的讨论范围内。