ホームページ  >  記事  >  バックエンド開発  >  PHP の __clone() メソッドの 2 つの $this の違いを調べてください。

PHP の __clone() メソッドの 2 つの $this の違いを調べてください。

WBOY
WBOYオリジナル
2016-12-01 00:56:201102ブラウズ

PHP の __clone() メソッドの 2 つの $this を説明するにはどうすればよいですか?どういう意味でしょうか?

リーリー

返信内容:

PHP の __clone() メソッドの 2 つの $this を説明するにはどうすればよいですか?どういう意味でしょうか?

リーリー

__clone()中没有两个$this,只有一个$this,这个$this所指向的是克隆出来的新对象,因为__clone()方法是在新对象中被调用的。
在执行克隆时,PHP会先进行一次浅复制,新建一个对象,将原对象中的属性全部复制到新对象中。对于对象、资源这类引用变量,只是复制它们的指针,而不会克隆它们。如果需要对这些属性进行深复制,则需要在__clone()個別にクローンを作成します。
例:

リーリー

ここで、2 つの $this->obj都指的是新类的$obj属性,因为克隆的时候新对象的$obj已经从原对象浅复制过来了,这里只是因为我们要进行深复制,所以对$this->obj が再度クローン作成を実行したことに注意してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。