PHP5 のオブジェクト モデルは参照によってオブジェクトを呼び出しますが、オブジェクトのコピーを作成し、元のオブジェクトへの変更がコピーに影響しないようにしたい場合があります。そのために、PHP は _ _clone と呼ばれる特別なメソッドを定義します。 __construct と __destruct の前には 2 つのアンダースコアがあります。
デフォルトでは、__clone メソッドを使用すると、元のオブジェクトと同じプロパティとメソッドを持つオブジェクトが作成されます。クローン作成時にデフォルトの内容を変更したい場合は、オーバーライドする必要があります。 __clone の (プロパティまたはメソッド)
clone メソッドにはパラメーターを含めることはできませんが、自分自身を複製することを選択した場合は、Any のコピーに注意する必要があります。 __clone を使用してコピーする場合、次は系列の序数を使用してオブジェクトを自動化する例を示します。
class ObjectTracker file://Object Tracker
{
private static $nextSerial = 0;
private $name;
function __construct($name) file://constructor
{
$ this->name = $name;
$this->id = ++self::$nextSerial
}
function __clone() file://clone
{
$this->name = "クローンof $that->name";
$this->id = ++self::$nextSerial;
}
function getId() file://id 属性の値を取得します
{
return($ this->id);
}
function getName() file://name 属性の値を取得します
{
return($this->name);
$ot = new ObjectTracker (" Zeev のオブジェクト");
$ot2 = $ot->__clone();
//出力: 1 Zeev のオブジェクト
print($ot->getId() . " " . $ot->getName () . "
");
//出力: Zeev のオブジェクトの 2 つのクローン
print($ot2->getId() . " " . $ot2->getName() . "
?>
http://www.bkjia.com/PHPjc/314114.html