2011-04-30 109 views
2

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

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

那么你怎么看?

回答

6

不,它没有任何区别。

PHP实现了copy-on-write,这意味着即使您为另一个变量赋值或从函数返回值,该值也只是在内部通过引用传递。只有在写入时才被实际复制,即使只有在没有其他变量引用它时也是如此。既然你是从一个函数返回数组,所以没有其他变量应该引用这个数组,因此在任何时候都没有复制。

PHP在指针,引用和变量处理方面做了很多优化。不要以为你可以轻松胜过,PHP对此太高级了。写下你的意思。和往常一样:简介找到真正的瓶颈。

+1

+1个人资料提示 – Eineki 2011-04-30 01:35:12

+1

+5复制写说明和+5分析建议:) – alex 2011-04-30 01:43:51