💡 技术前沿
博客园精华
PHP clone 之后,为什么改副本会影响原对象? - JaguarJack
博客园精华 ·
2026-09-08 23:51
· 0 浏览
AI 摘要
月下三贵
博客园
首页
新随笔
联系
订阅
管理
PHP clone 之后,为什么改副本会影响原对象?
PHP clone 之后,为什么改副本会影响原对象?
clone
会复制对象,却会共享嵌套对象。在每一层实现
__clone
可以解决这个问题,使用不可变值对象也可以。所有行为均已在 PHP 8.3 中验证。
下面这个错误报告改变了一个团队对 PHP 对象语义的理解。
某电商平台拥有一套订单处理服务。其中采用了一种标准模式:从数据库中获取订单,针对各种操作(计算总额、检查库存、应用折扣)克隆订单,从而使原始订单保持不变。
$workingOrder = clone $order;
是整个代码
关注公众号「网英的日常」,
第一时间获取行业资讯推送!