PHP 不要直接 clone 克隆对象,请使用 deep_copy 深拷贝

Posted 知其黑、受其白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 不要直接 clone 克隆对象,请使用 deep_copy 深拷贝相关的知识,希望对你有一定的参考价值。

阅读目录

Final 关键字

final 关键字通过在定义方法和常量之前加上 final 来防止被子类覆盖。
如果一个类被声明为 final,则不能被继承。

php类的实例方法的定义中使用final关键字可防止子类重写它。同样,如果在类本身的定义中使用final,则无法扩展此类。

PHP 的 clone

PHP 的 clone 关键字用于克隆对象的所有属性。

其背后的原理在于默认创建一个与原有对象的属性值完全一样的新对象,此外,也可以通过类的 __clone() 方法来实现自定义行为。

虽然该描述与我们的期望相符,但是,如果克隆的对象里面包含了对象类型的属性,可能会出现奇怪的结果。

FinalExceClass\\Car.php

创建文件夹及文件

以上是关于PHP 不要直接 clone 克隆对象,请使用 deep_copy 深拷贝的主要内容,如果未能解决你的问题,请参考以下文章

php __clone() 和“浅克隆”

php中对象

php 克隆 __clone

什么是 php 中的对象克隆?

克隆对象clone

php对象克隆