返回介绍

3.3.5 变量引用

发布于 2025-01-30 22:11:30 字数 1258 浏览 0 评论 0 收藏 0

变量引用很多老师喜欢来用 C 语言的指针来去讲解。我们作为有这么多年开发和教学经验的人来说——大多数学习 PHP 的人来说根本不了解 C 语言。

使用 C 语言一指针来讲解变量引用,我们觉得画蛇添足。并且,不利于没有 C 语基础的朋友们学习。

关于变量引用的知识点,请以我们的讲解为理解的基准!

我们来对比两段代码的执行结果:
第一段代码,没有任何区别。跟我们原有的 PHP 代码一模一样:

<?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
echo $bar.'<br />';
//$fo 的结果为 6
echo $fo.'<br />';

?>

为什么两个结果都变成 6 了呢?

我经常跟大家这样来举例。我们可以这样来想象:一个变量名,对应了一个数据值。如下图:

2015-08-02/55bdc64daf9e3

而加上&(and 符后),把变量指向同一个存值空间了,如下图:

2015-08-02/55bdc68312f9b

也就是不论$fo 或$bar 的值如何发生变化,$fo 变$bar 也变,$bar 发生变化,$fo 也会发生变化。

举个不靠谱的例子,方便你来理解:
你家有只小狗,叫作李文凯。又有一只小狗叫作狗蛋。有一天,你把狗蛋给吃了。把狗蛋这个名字给了李文凯

那么,你不论是打狗蛋一下,还是打李文凯一下都是打的同一条狗。

注:如果你理解、了解、熟悉 C 语言的指针。可自行用指针方式来理解,不在本文的讨论范围内。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文