2009-07-08 77 views

回答

7

只有对象通过引用传递。

这并不意味着您可以通过更改引用来获得性能提升--PHP使用写时复制,因此只有在修改变量时才会生成副本。

将代码分割成函数不会减慢它的速度。 调用一个函数有一个小的开销,但除非你在一个循环中调用了10,000个函数,否则它可能不是你需要担心的。

+2

对象不通过引用传递。对象是引用类型,但除非另行指定,否则它们将作为函数参数传递。 – Joseph 2009-07-08 12:59:10

1

是的,原语是由值来传递除非显式定义通过引用传递(通过在参数的前需使用符号&)或用在参数的前方的符号调用该函数的函数。 (后者已弃用)

请参阅this part of the documentation了解更多信息。

编辑

另外,在PHP的“对象是通过引用传递”的说法是有点简单化,虽然它往往可以在大多数情况被认为是这样的。这chapter of the documentation解释了不同之处。

1

通过引用传递实际上比在PHP中传递值慢。我找不到这个说法的正确引用;它位于PHP手册的“参考”部分。