今天用yii开发程序,一个bug改了一晚上,最后发现问题出在了对象复制机制上,PHP5之前的对象复制只需要$object_a = $object_b即可,但PHP5这样得到的是浅复制,及指针指向,并不是真正的数据复制,如改变$object_b的值,则$object_a也同样会发生变化,这时,需要令$object_a = clone $object_b,这样$object_a就不会跟随变化了。
但有一个问题,clone同样是PHP5才有的,因此,如果设计对象复制,则PHP5为分界版本,兼容问题需要注意。
注:Yii2.0默认支持PHP5及以上版本,因此,此问题在Yii2中才会涉及到,不包含Yii 1.X版本。
时间: 2024-12-09 05:09:56