可能重复:
In PHP can someone explain cloning vs pointer reference?如果对象通过别名传递,您何时通过引用传递?
根据http://php.net/manual/en/language.oop5.references.php
一个经常被提到的PHP 5 OOP的关键点之一是“对象是通过传递默认引用“。这并不完全正确。本节使用一些例子来整理这个一般思想。
PHP引用是一个别名,它允许两个不同的变量写入相同的值。从PHP 5开始,对象变量不再包含对象本身的值。它只包含一个对象标识符,它允许对象访问器找到实际的对象。当对象是由参数,返回或分配给另一个变量发送时,不同的变量不是别名:其所持有的标识符,它指向相同的对象的副本。
如果对象通过别名或处理程序传递,那么在什么情况下你真的想通过引用传递?
myFunc($obj); // Pass by alias/handler
myFunc(& $obj); // Pass by reference (when would you do this?)
myFunc(clone $obj); // Create a new object
这些每种情况的不同用例有哪些?
我认为这个讲座涵盖了以下主题:http://www.youtube.com/watch?v = bxxIXPc9IR8(其中包括) – 2012-07-19 15:13:24
请注意,从至少5.3开始,呼叫时传递引用已被弃用,如果不是更早。该函数声明了ARG游戏,预计将引用,并调用者没有指定,他们是引用 - 和,其实不应该。 – cHao 2012-07-19 15:16:39