2010-07-08 199 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