Walaupun percaya bahawa objek diluluskan melalui rujukan dalam PHP, pengendali tugasan tidak membuat salinan . Tingkah laku ini ditunjukkan dalam contoh kod berikut:
class A { public $b; } function set_b($obj) { $obj->b = "after"; } $a = new A(); $a->b = "before"; $c = $a; set_b($a); print $a->b; print $c->b;
Dalam kes ini, kedua-dua pernyataan cetakan akan mengeluarkan "selepas," menunjukkan bahawa objek telah diubah suai oleh fungsi set_b() walaupun diluluskan sebagai argument.
Untuk mencipta salinan objek dalam PHP, anda boleh menggunakan operator klon yang diperkenalkan dalam PHP 5 :
$objectB = clone $objectA;
Ini operasi mencipta objek baharu yang bebas daripada objek asal. Sebarang perubahan yang dibuat pada satu objek tidak akan menjejaskan yang lain.
Adalah penting untuk ambil perhatian bahawa hanya objek yang diluluskan melalui rujukan dalam PHP. Pembolehubah jenis lain, seperti tatasusunan, rentetan dan integer, dihantar mengikut nilai. Ini bermakna memperuntukkan pembolehubah ini kepada pembolehubah lain mencipta kejadian baharu pembolehubah, bukannya rujukan kepada pembolehubah asal.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Salinan Benar Objek dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!