<PHPLearn/>
クラス基礎 レッスン7

オブジェクトの複製

cloneキーワードと__cloneメソッドによるオブジェクト複製を学びます。

概要

PHPのオブジェクトは代入時に参照が渡されます。cloneキーワードでオブジェクトを複製(コピー)できます。__cloneメソッドで複製時の処理をカスタマイズできます。

  • $copy = clone $original でシャローコピーを作成する
  • __cloneメソッドでclone時に呼ばれる処理を定義できる
  • ネストしたオブジェクトはシャローコピーでは共有されるため注意

参照とcloneの違い

代入は参照のコピーなので、cloneで実体を複製する必要があります。

PHPエディタ

__cloneメソッドのカスタマイズ

__cloneで複製時に内部オブジェクトもディープコピーできます。

PHPエディタ