将复制

我正在用PHP编写一个Web API客户端,它将CSV数据分析为关联数组,并且我希望在使用这些数组时保护用户免受数据重复。

我的用户永远不会写这些数组(理论上他们可以但在实践中没有意义)。

现在我的问题是......如果我的用户将这些数组作为参数传递给方法,PHP的copy-on-write机制是否可以防止数据重复,或者是否有任何方法没有明确接受对数组的引用会得到完整的副本的数组?


如名称所示,在写入时复制意味着没有变量正在复制,直到写入内容为止; 只要在传递的变量中没有改变单个字节,PHP会自动避免不必要的重复,并且不需要使用明确的引用,这要归功于这种机制。

本文详细介绍了PHP的源代码是如何实现的,正如文章中所建议的那样,使用xdebug可以轻松检查变量是否与函数xdebug_debug_zval不重复。

此外,这个答案在SO上有更多关于写时复制的内容。


如果你不改变它们,数组将不会被复制。

链接地址: http://www.djcxy.com/p/57323.html

上一篇: Will copy

下一篇: Difference between return and exit in BASH functions