返回值与传递对象引用

时间:2011-04-30 01:13:04

标签: php function object reference return

在某些时候,有人向我建议我的PHP脚本中的迟缓可能部分是因为我从一个函数返回一个大数组。相反,他建议将对象引用传递给函数,并让函数直接在数组上工作。

如果这产生了显着的差异,我正计划将我的函数样式更改为返回有关函数执行的信息数组(时间基准,尝试等),而是直接在对象引用上工作。

那你觉得怎么样?

1 个答案:

答案 0 :(得分:6)

不,它没有任何区别。

PHP实现copy-on-write,这意味着即使您将值赋给另一个变量或从函数返回它,该值也只是在内部通过引用传递。它只是在写入时才被复制,即使这样,只有在没有引用它的其他变量时才会被复制。由于您从函数返回数组,因此没有其他变量可以引用该数组,因此任何时候都不会进行复制。

PHP在指针,引用和变量处理方面做了很多优化。不要以为你可以轻易超越它,PHP太高级了。写下你的意思。和往常一样: profile 找到真正的瓶颈。