将写入时复制防止对阵列的数据复制?将写入时复制防止对阵列的数据复制?(Will copy-on-wr

2019-06-02 10:40发布

我编程中的PHP解析CSV数据到关联数组的web API客户端,我想用这些阵列时保护我的用户数据复制。

我的用户将不会被写入到这些阵列(理论上他们可以,但它是没有意义的做法)。

现在的问题是......如果我的用户通过左右这些数组作为方法的参数,将PHP的写入时复制机制,防止数据重复或将不明确接受一个数组的引用任何方法得到的完整副本数组的?

Answer 1:

上写副本顾名思义手段没有变量被复制,直到事情是写的; 只要不是单字节各地传递的变量发生变化时,PHP需要自动且无需使用显式引用感谢这个机制避免重复unnecesary照顾。

这篇文章详细解释了这是如何在PHP的源代码来实现,并作为文章建议,使用Xdebug的人们可以很容易检查变量没有被重复使用的功能函数xdebug_debug_zval。

另外这个答案在这里等方面具有更多的写入时复制。



Answer 2:

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



文章来源: Will copy-on-write prevent data duplication on arrays?