我正在用 PHP 编写一个 Web API 客户端,将 CSV 数据解析为关联数组,并且我希望在使用这些数组时保护我的用户免受数据重复的影响。
我的用户永远不会写入这些数组(理论上他们可以,但在实践中没有意义)。
现在我的问题是...如果我的用户将这些数组作为参数传递给方法,PHP 的写时复制机制是否会防止数据重复,或者任何未显式接受数组引用的方法是否会收到完整的副本数组的?
顾名思义,写入时复制意味着在写入内容之前不会复制任何变量;只要传递的变量中没有更改任何字节,PHP 就会自动避免不必要的重复,并且由于这种机制而无需使用显式引用。
本文详细解释了这是如何在 PHP 源代码中实现的,正如文章所建议的,使用 xdebug 可以轻松地通过函数 xdebug_debug_zval 检查变量是否重复。
此外这个答案这里有更多关于写时复制的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)