Belajar PHP OOP Part 1.31 : __clone Function

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()

<?php

class 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);
    }
}

<?php

require_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()
clone function

Next Post Previous Post
No Comment
Add Comment
comment url