2010-07-08 93 views

回答

7

这意味着reference assignment

==&之间有两个不同。

首先,=不创建引用集:

$a = 1; 
$b = $a; 
$a = 5; //$b is still 1 

在另一方面,=&符不创建引用集:

$a = 1; 
$b = &$a; 
$a = 5; //$b is also 5 

其次,=更改所有变量的值参考集,而&=打破参考集。与此前比较例如:

$a = 1; 
$b = &$a; 
$c = 5; 
$a = &$c; //$a is 5, $b is 1 
+1

在第三个例子中没有看到&=的用法。我错过了什么吗? – 2014-05-06 17:14:54

0

这是一个reference assignment这实际上是两个不同的运营商。

=是分配,&通过引用访问右边的值。

2

它被称为参考分配。它使分配给变量的点与赋值变量的值相同。

在PHP 4中,当分配对象和数组时,这是相当普遍的,否则你会得到对象或数组的副本。这对于内存管理以及某些类型的编程是不利的。

在PHP 5中,对象和数组是引用计数的,而不是复制的,所以引用分配的次数要少得多。一些程序员仍然在使用它'以防万一'由于某种原因,PHP决定复制在那里有意义。但是引用赋值在其他方面仍然有效,例如标量变量,通常在赋值时被复制。

+0

+1的详细解释。 – 2010-07-08 01:19:07