php4 オブジェクト指向の最大の欠点の 1 つは、オブジェクトを別のデータ型として扱うため、デザイン パターンなどの多くの一般的な OOP メソッドが使用できなくなることです。これらの OOP メソッドは、オブジェクトを値としてではなく参照として他のクラス メソッドに渡すことに依存しています。幸いなことに、PHP はこの問題を解決します。すべてのオブジェクトがデフォルトで参照として扱われるようになりました。ただし、すべてのオブジェクトのペアは値ではなく参照として扱われるため、オブジェクトをコピーするのが難しくなります。オブジェクトをコピーしようとすると、これは元のオブジェクトのアドレスを指します。重複の問題を解決するために、PHP は表示オブジェクトを複製するメソッドを提供します。
例は次のとおりです:
まず、オブジェクトのクローンを作成するための clone キーワードの使用方法を紹介します。
リーリー 操作結果:
リーリー
PHP5 では、オブジェクトのクローン作成時に自動的に呼び出される特別なメソッド名「__clone()」が定義されています。必要に応じて、「__clone()」メソッドを使用すると、元のオブジェクトと同じ属性とメソッドを持つオブジェクトが作成されます。クローン作成後に元のオブジェクトの内容を変更するには、__clone() の元の属性とメソッドを書き直す必要があります。「__clone()」メソッドには、$this と $that という 2 つのポインターが自動的に含まれます。 $this は コピー を指し、$that は オリジナル ;
を指しますリーリー
リーリー
実行後の結果:
リーリー