Dalam artikel sebelumnya, saya membawakan anda "Definisi dan Penggunaan Ruang Nama dalam PHP (Contoh Terperinci)", yang memperkenalkan definisi dan penggunaan ruang nama dalam PHP secara terperinci Artikel ini terus dipaparkan anda pengetahuan yang berkaitan dalam PHP, tentang penggunaan kata kunci klon. Semoga ia membantu semua orang!
Dalam kajian kami sebelum ini, terdapat banyak kata kunci, seperti $this
, $new
dan seterusnya Hari ini kita akan terus melihat kata kunci dalam PHP Count kata kunci yang lebih biasa digunakan clone
kata kunci klon. Sebelum mempelajari kata kunci klon, kita perlu tahu bahawa model objek dalam PHP memanggil objek dengan rujukan, tetapi kita juga perlu membuat salinan objek Tujuannya adalah untuk mengelakkan kesan salinan objek apabila objek asal berubah.
Pada masa ini, jika anda menggunakan kata kunci baharu, anda boleh mencipta semula objek, dan kemudian memberikan nilai yang sama kepada atribut Ia juga boleh memainkan peranan untuk mencipta salinan baharu. tetapi kaedah ini bukan sahaja menyusahkan tetapi juga rawan ralat , pada masa ini kami berharap PHP boleh mempunyai objek yang sama, dan kedua-duanya tidak mengganggu antara satu sama lain, yang kami anggap sebagai klon. Bagaimanakah ini harus dicapai? Jangan panik, teruskan menonton.
<strong><span style="font-size: 20px;">clone</span></strong>
Kata kunci
Kami berharap untuk mempunyai salinan yang tidak mengganggu objek asal dan menghantarnya dalam PHP Kata kunci klon boleh digunakan untuk mengklon objek. Format sintaks kata kunci
clone
adalah seperti berikut:
克隆对象名称 = clone 原对象名称;
Anda boleh memahami tindakan pengklonan sebagai menyalin kawasan memori objek, dan objek yang ditetapkan ialah sama seperti objek asal adalah bebas antara satu sama lain. Dan kaedah ahli, sifat dan nilai di antara mereka adalah sama.
Seterusnya, mari kita lihat keupayaan klon melalui contoh mudah adalah seperti berikut:
<?php class father{ public $study1, $study2; public function __construct($study1, $study2){ $this -> study1 = $study1; $this -> study2 = $study2; } public function output(){ echo $this -> study1.','. $this -> study2.'<br>'; } } $obj = new father('好好学习', '天天向上'); $obj2 = clone $obj;//克隆$obj $obj -> output(); $obj2 -> output(); echo '<pre class="brush:php;toolbar:false">'; var_dump($obj); var_dump($obj2); ?>
Hasil keluaran:
dalam kaedah sihir PHP. __clone()
<strong><span style="max-width:90%">__clone()</span></strong>
__klon()
__clone()
clone
Kaedah __clone()
dalam PHP tidak boleh dipanggil secara langsung Hanya
boleh mempunyai
Pada masa ini, apabila menggunakan klon untuk membuat salinan, anda perlu memberi perhatian PHP akan menyemak sama ada __clone() wujud.
Jika ia tidak wujud, PHP akan menetapkan semua atribut objek secara lalai jika __clone() wujud, iaitu, ia telah ditakrifkan, maka ia juga akan bertanggungjawab untuk atribut objek baharu; .
<?php class father{ 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(){//通过__clone()来更改新对象的属性 $this -> name = '福如东海'; $this -> url = '寿比南山'; } } $obj = new father('好好学习', '天天向上'); $obj2 = clone $obj; $obj -> output(); $obj2 -> output(); ?>
private
__clone()
Oleh Daripada contoh di atas, dapat dilihat bahawa kaedah __clone() tidak memerlukan sebarang parameter. Perkara lain yang boleh kami ketahui ialah jika anda ingin melarang pengklonan, anda hanya perlu menetapkan kaedah
(peribadi Ini akan melumpuhkan tujuan pengklonan). Jika anda berminat, anda boleh klik pada "
Tutorial Video PHP" untuk mengetahui lebih lanjut tentang pengetahuan PHP.Atas ialah kandungan terperinci Penggunaan kata kunci klon dan kaedah __clone() dalam PHP (contoh terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!