カテゴリー:
関数
閲覧数:611 配信日:2018-03-03 10:04
__clone
__clone()メソッド(を定義している場合)
・オブジェクトのクローンを生成した際コールされる
・そのオブジェクトの __clone() メソッドがある場合、呼び出す
・オリジナルのオブジェクト側でなく生成されたクローン側でコールされるので、意味合いとしては“クローンのコンストラクタ”のようなもの
__clone()メソッド
呼び出される具体例
clone キーワード使用
class C{
public function __clone(){
}
}
$obj = new C;
clone $obj;
__clone()メソッド内でプロパティを更新すると?
反映されるのはクローン側のみ
・コールされる「__clone()」メソッドは、オリジナルのオブジェクト側のものではなく生成されたクローン側のものだから
__destruct()メソッドを定義している場合
exit実行すると
・クローンオブジェクトに対してもデストラクタ処理を実行
・クローンオブジェクトに対してデストラクタ処理を実行した後、元オブジェクトに対してデストラクタ処理を実行