首页 > 编程笔记 > PHP笔记 阅读:3

PHP变量赋值的2种方式(附带实例)

PHP 程序中,变量的赋值有两种方式,分别是传值赋值和引用赋值。这两种赋值方式在数据的处理方式上存在很大差别。

PHP传值赋值

传值赋值指的是用“=”直接将一个变量(或表达式)的值赋给另一个变量。

使用这种赋值方式时,等号两边的变量值互不影响,任何一个变量值的变化都不会影响另一个变量的变量值,如下图所示。


图 1 传值赋值示意

从根本上讲,传值赋值是通过在存储区域复制一个变量的副本来实现的,传值赋值的实例代码如下:
<?php
$a=33;
$b=$a;
$b=44;
echo "变量a的值为".$a."<br>";
echo "变量b的值为".$b;
?>
在上述代码中,执行“$a = 33”语句时,系统会在内存中为变量a开辟一个存储空间,并将数值“33”存储到该存储空间中。

在执行“$b = $a”语句时,系统会在内存中为变量 b 开辟一个存储空间,并将变量 a 所指向的存储空间中的内容复制到变量 b 所指向的存储空间中。

在执行“$b = 44”语句时,系统将在变量 b 所指向的存储空间中保存的值更改为“44”,而在变量 a 所指向的存储空间中保存的值仍然是“33”。

运行结果为:

变量a的值为33
变量b的值为44

PHP引用赋值

引用赋值同样使用“=”将一个变量的值赋给另一个变量,但是需要在“=”右侧的变量前加上一个“&”符号。

这种赋值方式并不是真正意义上的为变量赋值,而是相当于一个变量引用另一个变量。在使用引用赋值的时候,两个变量将会指向内存中的同一个存储空间,如下图所示。


图 2 引用赋值示意

在引用赋值中,任何一个变量的变化都会引起另外一个变量的变化。引用赋值的实例代码如下:

【实例】引用赋值
<?php
$a=33;
$b=&$a;
$b=44;
echo "变量a的值为".$a."<br>";
echo "变量b的值为".$b;
?>
在上述代码中,执行“$a = 33”语句时,对内存进行操作的过程与传值赋值相同,不再介绍。执行“$b = &$a”语句后,变量 b 将会指向变量 a 所占有的存储空间。在执行“$b = 44”语句后,在变量 b 所指向的存储空间中保存的值变为“44”。此时由于变量 a 也指向此存储空间,所以变量 a 的值也会变为“44”。

运行结果为:

变量a的值为44
变量b的值为44

相关文章