Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mencipta Salinan Benar Objek dalam PHP?

Bagaimanakah Saya Boleh Mencipta Salinan Benar Objek dalam PHP?

DDD
Lepaskan: 2024-11-28 09:40:11
asal
201 orang telah melayarinya

How Can I Create True Copies of Objects in PHP?

Menyalin Objek dalam PHP: Memahami Lulus Melalui Rujukan dan Menggunakan 'Klon'

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan