我似乎无法获得任何一致的信息。不同的消息来源似乎说了不同的话,而古老的php.net本身( 似乎 )并未明确指出这一点- 尽管我必须承认,我只是快速浏览了一下。
如果我要传递“重”对象,则需要通过引用传递,但我不想继续输入:
function foo(TypeName& $obj)
如果我能摆脱
function foo(TypeName $obj)
那么标准怎么说呢?
对象通过引用传递(和分配)。无需使用操作员地址。
当然,我键入的内容过于简单,但将适合您的目的。该文档指出:
经常提到的PHP5 OOP的关键点之一是“默认情况下,对象是通过引用传递的”。这不是完全正确的。本节使用一些示例来纠正一般性想法。 PHP引用是一个别名,它允许两个不同的变量写入相同的值。从PHP5开始,对象变量不再包含对象本身作为值。它仅包含一个对象标识符,该标识符使对象访问者可以找到实际的对象。当对象通过参数发送,返回或分配给另一个变量时,不同的变量不是别名:它们持有标识符的副本,该副本指向同一对象。
经常提到的PHP5 OOP的关键点之一是“默认情况下,对象是通过引用传递的”。这不是完全正确的。本节使用一些示例来纠正一般性想法。
PHP引用是一个别名,它允许两个不同的变量写入相同的值。从PHP5开始,对象变量不再包含对象本身作为值。它仅包含一个对象标识符,该标识符使对象访问者可以找到实际的对象。当对象通过参数发送,返回或分配给另一个变量时,不同的变量不是别名:它们持有标识符的副本,该副本指向同一对象。