ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクト指向のクローン作成_PHP チュートリアル

PHP オブジェクト指向のクローン作成_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:01:121042ブラウズ

PHP オブジェクト指向のクローン作成

php4 オブジェクト指向の最大の欠点の 1 つは、オブジェクトを別のデータ型として扱うため、デザイン パターンなどの多くの一般的な OOP メソッドが使用できなくなることです。これらの OOP メソッドは、オブジェクトを値としてではなく参照として他のクラス メソッドに渡すことに依存しています。幸いなことに、PHP はこの問題を解決します。すべてのオブジェクトがデフォルトで参照として扱われるようになりました。ただし、すべてのオブジェクトのペアは値ではなく参照として扱われるため、オブジェクトをコピーするのが難しくなります。オブジェクトをコピーしようとすると、これは元のオブジェクトのアドレスを指します。重複の問題を解決するために、PHP は表示オブジェクトを複製するメソッドを提供します。

例は次のとおりです:

まず、オブジェクトのクローンを作成するための clone キーワードの使用方法を紹介します。

リーリー 操作結果:

リーリー
実行結果から、test2 が名前を変更していないことがわかります。 test と test2 の 2 つのオブジェクトは異なるオブジェクトですが、同じ属性を持ち、test2 オブジェクトの属性を変更してもテスト オブジェクトの属性には影響しません。したがって、クローン作成は値渡しではなく、値渡しであると結論付けることができます。簡単な参考資料。

PHP5 では、オブジェクトのクローン作成時に自動的に呼び出される特別なメソッド名「__clone()」が定義されています。必要に応じて、「__clone()」メソッドを使用すると、元のオブジェクトと同じ属性とメソッドを持つオブジェクトが作成されます。クローン作成後に元のオブジェクトの内容を変更するには、__clone() の元の属性とメソッドを書き直す必要があります。「__clone()」メソッドには、$this と $that という 2 つのポインターが自動的に含まれます。 $this は コピー を指し、$that は オリジナル ;

を指します

リーリー
操作結果:

リーリー
リーリー

実行後の結果:

リーリー

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/972221.html技術記事 PHP オブジェクト指向クローン php4 オブジェクト指向の最大の欠点の 1 つは、オブジェクトを別のデータ型として扱うため、デザイン パターンなどの多くの一般的な OOP メソッドが使用できなくなることです。これらは...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。