PHP clone
例
オブジェクトのコピーを作成します。
<?php
class MyClass {
public $color;
public $amount;
}
$obj = new MyClass();
$obj->color = "red";
$obj->amount = 5;
$copy = clone $obj;
print_r($copy);
?>
定義と使用法
clone
は、オブジェクトのコピーを作成するために使用されます。
プロパティのいずれかが別の変数またはオブジェクトへの参照であった場合、参照のみがコピーされます。オブジェクトは常に参照によって渡されるため、元のオブジェクトのプロパティに別のオブジェクトがある場合、コピーは同じオブジェクトを指します。この動作は、__clone()
クラスのメソッドを作成することで変更できます。
関連ページ
classの詳細はこちらPHP クラスとオブジェクトのチュートリアル。
その他の例
例
参照を持つオブジェクトのコピーを作成します。
<?php
class MyClass {
public $amount;
}
// Create an object with a reference
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;
// Clone the object
$copy = clone $obj;
// Change the value in the original object
$obj->amount = 6;
// The copy is changed
print_r($copy);
?>
例
__clone()
を使用してコピーされたオブジェクトの参照を解除するメソッド:
<?php
class MyClass {
public $amount;
public function __clone() {
$value = $this->amount;
unset($this->amount); // Unset breaks references
$this->amount = $value;
}
}
// Create an object with a reference
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;
// Clone the object
$copy = clone $obj;
// Change the value in the original object
$obj->amount = 6;
// The copy is not changed
print_r($copy);
?>
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。