Belajar PHP OOP Part 1.31 : __clone Function
- Kadang menyalin semua properties bukanlah yang kita inginkan
- Misal saja kita hanya ingin menyalin beberap properties saja, tidak ingin semuanya
- Jika kita ingin memodifikasi cara PHP melakukan clone, kita bisa membuat function di dalam class nya dengan nama function __clone()
- Function __clone() akan dipanggil di object hasil duplikasi setelah proses duplikasi selesai
- jadi jika kita ingin menghapus beberapa properties, bisa kita lakukan function __clone()
<?phpclass Student{public string $id;public string $name;public int $value;private string $sample;public function setSample(string $sample): void{$this->sample = $sample;}public function __clone(){unset($this->sample);}}
<?phprequire_once "data/Student.php";$student1 = new Student();$student1->id = "1";$student1->name = "Eko";$student1->name = 100;$student1->setSample("XXX");var_dump($student1);//Cara Otomatis Clone$student2 = clone $student1;var_dump($student2);//Cara Manual Clone/*$student2 = new Student();$student2->id = $student1->id;$student2->name = $student1->name;$student2->value = $student1->value;*///Flow- $student1 => clone $student2 => $student2->__clone()