在php中$a = $b; 和$a = &$b; 的区别?

如题所述

&在php中是引用的意思,PHP 的引用允许用两个变量来指向同一个内容。意思是,当这样做时:
<?php
$a =& $b;
?>
这意味着 $a 和 $b 指向了同一个变量。 $a 和 $b 在这里是完全相同的,这并不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一个地方。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-21
首先你要明白指针的概念,不过php的指针和c的指针有一些不同
$a = $b;
是把$b的值赋值给$a,如果赋值后,$b的值改变了,$a的值是不会改变的

$a =&$b;
这个是把$b的地址传递给$a,这个时候,$a和$b都指向内存中的同一块地址,所以如果赋值后,你改变了$b的值,$a的值也是会改变的

举个例子
$b = 1;
$a = $b;
$b = 2;
echo $b; //打印2
echo $a; //打印1

-------------------------
$b = 1;
$a = &$b;
$b = 2;
echo $b;//打印2
echo $a;//打印2本回答被网友采纳
第2个回答  2011-07-21
实际上也很简单,两者唯一区别就是后者多了个&
所谓&就是取地址。
$a = $b 意思直接把$b这个变量拷贝一份给$a 变量
$b = & $b 意思就是把$b这变量的值所指向的内存地址的值赋给$a
也许还不够清楚。呵呵
相似回答