Home » PHP » Keyword clone PHP

Keyword clone PHP

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Definisi dan Penggunaan

Kata kunci clone digunakan untuk membuat salinan objek.

Jika salah satu properti adalah referensi ke variabel atau objek lain, maka hanya referensi yang disalin. Objek selalu diteruskan oleh referensi, jadi jika objek asli memiliki objek lain di propertinya, salinannya akan mengarah ke objek yang sama. Perilaku ini bisa diubah dengan membuat metode __clone() di kelas.

Contoh
Buat salinan objek:

<?php
class MyClass {
  public $color;
  public $amount;
}

$obj = new MyClass();
$obj->color = "red";
$obj->amount = 5;
$copy = clone $obj;
print_r($copy);
?>
  /* Output : 
MyClass Object
(
    [color] => red
    [amount] => 5
)

Contoh Lain

Contoh
Buat salinan objek yang memiliki referensi:

<?php
class MyClass {
  public $amount;
}

// Buat objek dengan referensi
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;

// clone objek
$copy = clone $obj;

// Ubah nilai di objek asli
$obj->amount = 6;

// Salinan diubah
print_r($copy);
?>
/* Output :
MyClass Object
(
    [amount] => 6
)

Contoh
Gunakan metode __clone () untuk merusak referensi dalam objek yang disalin:

<?php
class MyClass {
  public $amount;
  public function __clone() {
    $value = $this->amount;
    unset($this->amount); // Hapus referensi break
    $this->amount = $value;
  }
}

// Buat objek dengan referensi
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;

// Clone objek
$copy = clone $obj;

// Ubah nilai di objek asli
$obj->amount = 6;

// Salinan tidak diubah
print_r($copy);
?>
  /* Output :
MyClass Object
(
    [amount] => 5
)

You may also like