什么是= &赋值运算符在PHP中呢?我在“PHP手册”的作业部分找不到任何参考。
我看到它在一个类的实例,所以我挺不理解什么是= &,仅供=之间的差异。
什么是= &赋值运算符在PHP中呢?我在“PHP手册”的作业部分找不到任何参考。
我看到它在一个类的实例,所以我挺不理解什么是= &,仅供=之间的差异。
这意味着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
这是一个reference assignment这实际上是两个不同的运营商。
=
是分配,&
通过引用访问右边的值。
它被称为参考分配。它使分配给变量的点与赋值变量的值相同。
在PHP 4中,当分配对象和数组时,这是相当普遍的,否则你会得到对象或数组的副本。这对于内存管理以及某些类型的编程是不利的。
在PHP 5中,对象和数组是引用计数的,而不是复制的,所以引用分配的次数要少得多。一些程序员仍然在使用它'以防万一'由于某种原因,PHP决定复制在那里有意义。但是引用赋值在其他方面仍然有效,例如标量变量,通常在赋值时被复制。
+1的详细解释。 – 2010-07-08 01:19:07
在第三个例子中没有看到&=的用法。我错过了什么吗? – 2014-05-06 17:14:54