Dalam PHP, kata kunci klon boleh digunakan untuk mengklon objek Format sintaks ialah "nama objek klon = nama objek asal;" selepas objek berjaya diklon, kaedah ahli, atribut dan nilai adalah sama daripada. Jika anda ingin menetapkan semula atribut ahli salinan klon, anda boleh menggunakan kaedah "__clone()".
Persekitaran pengendalian tutorial ini: sistem windows7, versi PHP7.1, komputer DELL G3
Klon PHP kata kunci (Objek klon)
Model objek dalam PHP memanggil objek melalui rujukan, tetapi kadangkala perlu mencipta salinan objek Apabila menukar objek asal, anda tidak mahu untuk menjejaskan salinan objek. Jika anda menggunakan kata kunci baharu untuk mencipta semula objek dan kemudian memberikan nilai yang sama kepada sifat, ia akan menyusahkan dan terdedah kepada ralat. Dalam PHP, anda boleh mengklon objek yang sama berdasarkan objek sedia ada Selepas pengklonan, objek asal dan objek salinan adalah bebas sepenuhnya dan tidak mengganggu satu sama lain.
Dalam PHP, anda boleh menggunakan kata kunci klon untuk mengklonkan objek Format sintaks adalah seperti berikut:
克隆对象名称 = clone 原对象名称;
Oleh kerana kaedah klon sebenarnya menyalin keseluruhan kawasan memori objek dan menggunakannya. dengan yang baharu. Pembolehubah objek menghala ke memori baharu, jadi objek yang ditetapkan dan objek asal adalah bebas antara satu sama lain.
Selepas objek berjaya diklon, kaedah ahli, sifat dan nilainya adalah sama. Jika anda ingin menetapkan semula atribut ahli salinan klon, anda boleh menggunakan kaedah __clone().
【Contoh】Yang berikut menggunakan contoh mudah untuk menunjukkan penggunaan kata kunci klon.
<?php class Website{ public $name, $url; public function __construct($name, $url){ $this -> name = $name; $this -> url = $url; } public function output(){ echo $this -> name.','.$this -> url.'<br>'; } } $obj = new Website('PHP中文网', '//m.sbmmt.com/'); $obj2 = clone $obj; $obj -> output(); $obj2 -> output(); echo '<pre class="brush:php;toolbar:false">'; var_dump($obj); var_dump($obj2); ?>
Keputusan yang dijalankan adalah seperti berikut:
PHP中文网,//m.sbmmt.com/ PHP中文网,//m.sbmmt.com/ object(Website)#1 (2) { ["name"]=> string(16) "PHP中文网" ["url"]=> string(27) "//m.sbmmt.com/" } object(Website)#2 (2) { ["name"]=> string(16) "PHP中文网" ["url"]=> string(27) "//m.sbmmt.com/" }
Nota: Jika anda menggunakan = untuk menetapkan objek kepada pembolehubah, maka apa yang anda perolehi akan menjadi rujukan ke objek. Menukar nilai harta melalui pembolehubah ini akan mempengaruhi objek asal.
kaedah ajaib __klon()
Kaedah __klon() tidak boleh dipanggil terus, hanya apabila objek diklon melalui kata kunci klon Anda boleh menggunakan objek ini untuk memanggil kaedah __clone(). Apabila membuat salinan objek, PHP menyemak sama ada kaedah __clone() wujud. Jika ia tidak wujud, maka ia memanggil kaedah __clone() lalai, menyalin semua sifat objek. Jika kaedah __clone() telah ditakrifkan, maka kaedah __clone() akan bertanggungjawab untuk menetapkan sifat objek baharu. Jadi dalam kaedah __clone(), anda hanya perlu mengatasi sifat-sifat yang perlu diubah.
Kaedah __clone() tidak memerlukan sebarang parameter Berikut ialah contoh untuk ditunjukkan:
<?php class Website{ public $name, $url; public function __construct($name, $url){ $this -> name = $name; $this -> url = $url; } public function output(){ echo $this -> name.','.$this -> url.'<br>'; } public function __clone(){ $this -> name = 'PHP教程'; $this -> url = '//m.sbmmt.com/'; } } $obj = new Website('PHP中文网', '//m.sbmmt.com/'); $obj2 = clone $obj; $obj -> output(); $obj2 -> output(); ?>
Keputusan yang dijalankan adalah seperti berikut:
<. 🎜>PHP中文网,//m.sbmmt.com/ PHP教程,//m.sbmmt.com/
Tutorial Video PHP"
Atas ialah kandungan terperinci Cara menggunakan kata kunci klon php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!