Menyelam ke dalam Pengklonan Objek dalam PHP
Apabila bekerja dengan objek dalam PHP, adalah penting untuk memahami bahawa ia sememangnya diluluskan melalui rujukan. Ini bermakna bahawa sebarang perubahan yang dibuat pada objek dalam fungsi juga akan mempengaruhi objek asal. Tingkah laku ini boleh menguntungkan dan merugikan bergantung pada situasi.
Dalam contoh khusus anda, anda menjangkakan tugasan $c = $a untuk membuat salinan objek $a. Walau bagaimanapun, memandangkan objek dihantar melalui rujukan, $c sebenarnya menunjuk ke objek yang sama seperti $a. Oleh itu, panggilan seterusnya untuk set_b($a) mengubah suai $a dan $c, kerana ia adalah objek yang sama.
Untuk benar-benar mencipta salinan objek dalam PHP, anda perlu menggunakan klon pengendali. Operator ini mencipta objek baharu dengan sifat dan nilai yang sama seperti yang asal, tetapi dengan alamat memori yang berbeza. Dengan menggunakan pengendali klon, anda boleh memastikan bahawa perubahan yang dibuat pada objek klon tidak akan menjejaskan objek asal.
Begini cara anda boleh melaksanakan pengklonan dalam kod anda:
$objectB = clone $objectA;
Barisan ini akan buat objek baru $objectB iaitu salinan $objectA. Sebarang perubahan yang dibuat pada $objectB tidak akan menjejaskan $objectA, begitu juga sebaliknya.
Perlu diingat bahawa tidak semua objek boleh diklon. Objek yang mempunyai rujukan bulat atau melaksanakan kaedah __clone() mungkin tidak dapat disalin dengan betul. Dalam kes sedemikian, anda mungkin perlu membuat salinan objek secara manual dengan memberikan setiap sifat secara individu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Salinan Sebenar Objek PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!