加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 21:28:10 所属栏目:PHP教程 来源:网络整理
导读:我正在使用 PHP编写Web API客户端,将CSV数据解析为关联数组,并且我希望在使用这些数组时保护我的用户免受数据复制. 我的用户永远不会写这些数组(理论上他们可以,但在实践中没有意义). 现在我的问题是……如果我的用户将这些数组作为方法的参数传递,那么PHP的
我正在使用 PHP编写Web API客户端,将CSV数据解析为关联数组,并且我希望在使用这些数组时保护我的用户免受数据复制.

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

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

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读