PHP引用赋值

PHP变量间的赋值方式有两种:
1、传值赋值
2、引用赋值
 
1、传值赋值
传值赋值是将变量的值复制一份赋值给新的变量,这个新的变量被分配了新的内存地址,修改这两个变量的值时互不影响。例如:
$a=$b意指$b变量的值复制一份赋给$a,而且$a和$b分别指向不同的内存地址,两者改变互不影响。以下代码


$a=1;
$b=$a;
$a=2;
echo $b  //1,$a值得改变不会影响$b,反之亦然


 
2、引用赋值
官方文档的解释是,可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。例如:


<?php
function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
// $a is 6 here
?>


这时候$a传给函数的其实是$a所占的内存地址,这样在函数体里操作$var也能对$a的值进行更改,例如$a=&$b意指将$b的内存地址赋给$a,此时两个变量指向同一个内存地址,所以一旦改变其中一个的值,另一个必定随之改变。可以这样理解,一个人拥有了两个身份,那么不管是哪个身份做出的改变,都是这个人的改变。以下例子:


<?php 
$a = 1;  
$b = &$a; // 通过 $b 引用 $a 
$b = 2; // 修改 $b 变量 
echo $b; 
echo $a; // 输出2,$a 的值也被修改 
?> 


 

0 个评论

要回复文章请先登录注册