微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 写时复制会阻止数组上的数据重复吗?

我正在使用PHP编写Web API客户端,将CSV数据解析为关联数组,并且我希望在使用这些数组时保护我的用户免受数据复制.

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

现在我的问题是……如果我的用户将这些数组作为方法的参数传递,那么PHP的写时复制机制是否会阻止数据复制,或者任何未明确接受对数组的引用的方法都会收到完整的副本阵列?

解决方法:

写入时复制,顾名思义表示在写入内容之前不会复制任何变量;只要在传递的变量中没有改变单个字节,PHP就会自动避免不必要的重复,并且由于这种机制而不需要使用显式引用.

This article详细解释了如何在PHP的源代码中实现,并且如文章所示,使用xdebug可以轻松检查变量是否与xdebug_debug_zval函数不重复.

另外this answer在SO上有更多关于copy-on-Write.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐