![](spacer.gif) |
构造函数中的引用
在构造函数中创建引用可能会导致混淆的结果。本节以教程形式帮助避免问题。
下面来检查一下用拷贝运算符
=
创建的
$bar1
和用引用运算符
=&
创建的
$bar2
有没有区别...
显然没有区别,但实际上有一个非常重要的区别:$bar1
和 $globalref[0]
并没有被引用,它们不是同一个变量。这是因为“new”默认并不返回引用,而返回一个拷贝。
注:
在返回拷贝而不是引用中并没有性能上的损失(因为
PHP 4 及以上版本使用了引用计数)。相反更多情况下工作于拷贝而不是引用上更好,因为建立引用需要一些时间而建立拷贝实际上不花时间(除非它们都不是大的数组或对象,而其中之一跟着另一个变,那使用引用来同时修改它们会更聪明一些)。
要证明以上写的,看看下面的代码。
最后给出另一个例子,试着理解它。
| ![](spacer.gif) |