博主信息
R࿆ebirth༢局外人
博文
12
粉丝
0
评论
0
访问量
2334
积分:0
P豆:24

深入浅出理解PHP原理之变量赋值

2021年10月03日 12:41:38阅读数:271博客 / R࿆ebirth༢局外人

这个标题估计很多人会不屑一顾,变量赋值?excuse me?我们学开发的第一课就会了好不好。但是,就是这样基础的东西,反而会让很多人蒙圈,比如,值和引用的关系。今天,我们就来具体讲讲。

首先,定义变量和赋值这个不用多说了吧

$a = 1;
$a = 1;

$b = ‘2’;

$c = [4, 5, 6];

$d = new stdClass();
四个变量,分别定义了整型、字符串、数组的对象。这也是我们天天要打交道的四种类型。

然后,变量给变量赋值。
$a1 = $a;

  1. $b1 = $b;
  2. $c1 = $c;
  3. $d1 = $d;
  4. 请注意,前三个的赋值都是正常的赋值,也就是对具体内容的拷贝。当我们修改$a1的时候$a不会有变化。$a1是新开的内存空间保存了我们的值。也就是说,他们的值是一样的,但内存地址不一样。是两个没啥关系的长得很像的人而已。

但是$d1和$d就不是了,这两货不仅值是一样的,内存地址也是一样的。这种情况就是我们所说的引用赋值。当$d1发生变化时,$d2也会产生变化。

可以这么说:引用赋值就是为原变量建立了一个Windows下的快捷方式或者Linux中的软链接。

用具体的例子来说明,首先是普通值的赋值:
// 普通赋值

  1. $v = '1';
  2. $c = $v;
  3. $c = '2';
  4. echo $v, PHP_EOL; // '1'
  5. // 数组也是普通赋值
  6. $arr1 = [1,2,3];
  7. $arr2 = $arr1;
  8. $arr2[1] = 5;
  9. print_r($arr1); // [1, 2, 3]

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论