Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membuat Salinan Objek Bebas dalam PHP Menggunakan Operator Klon?
Mencipta Salinan Objek dalam PHP
Objek PHP secara semula jadi diluluskan melalui rujukan, menjadikan penetapan objek hanya memperuntukkan rujukan lain kepada yang asal objek. Untuk menyelesaikan isu ini dan mencipta salinan objek bebas, PHP menyediakan pengendali klon.
Sebab Melewati Rujukan
Dalam PHP, objek secara berkesan merujuk kepada kawasan ingatan mengandungi data objek. Melewati rujukan memastikan bahawa sebarang pengubahsuaian yang dibuat pada objek dalam fungsi dicerminkan dalam objek asal, mengekalkan niat asal pengaturcaraan berorientasikan objek.
Operator untuk Pengklonan Objek
Pengendali klon direka khusus untuk mencipta salinan objek. Dengan menggunakan $clonedObject = clone $originalObject, objek baharu dicipta dengan sifat dan nilai yang sama dengan objek asal. Objek klon ialah entiti bebas sepenuhnya dan sebarang perubahan yang dibuat pada mana-mana objek tidak akan menjejaskan yang lain.
Contoh Penggunaan
Pertimbangkan contoh berikut:
class A { public $b; } function set_b($obj) { $obj->b = "after"; } $a = new A(); $a->b = "before"; $c = $a; // Assignment creates another reference to $a set_b($a); print $a->b; // Outputs "after" print $c->b; // Also outputs "after"
Dalam contoh ini, memberikan $a kepada $c mencipta rujukan kepada objek yang sama. Apabila set_b($a) dipanggil, perubahan dibuat pada objek asal, mempengaruhi kedua-dua $a dan $c.
Untuk mencapai hasil yang diingini, klon boleh digunakan seperti berikut:
$a = new A(); $a->b = "before"; $c = clone $a; // Creates an independent copy of $a set_b($a); print $a->b; // Outputs "after" print $c->b; // Outputs "before" (not affected by changes to $a)
Dalam kes ini, $c ialah objek berasingan yang tidak terjejas oleh pengubahsuaian yang dibuat kepada $a.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Salinan Objek Bebas dalam PHP Menggunakan Operator Klon?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!