347 of 410 menu

Metode __clone

Die metode __clone word outomaties aangeroep wanneer die clone-operator gebruik word. Dit laat jou toe om jou eie logika vir die kopiëring van die objek te definieer. Standaard voer PHP 'n vlak kopiëring van alle eienskappe van die objek uit. Die __clone-metode is nuttig wanneer jy diep kopiëring wil implementeer of die gedrag tydens kloning wil verander.

Sintaksis

public function __clone(): void

Voorbeeld

Laat ons basiese kloning van 'n objek implementeer:

<?php class User { public $name; public function __construct($name) { $this->name = $name; } public function __clone() { echo 'Objek is gekloneer'; } } $user1 = new User('John'); $user2 = clone $user1; ?>

Resultaat van die kode-uitvoering:

'Objek is gekloneer'

Voorbeeld

Laat ons diep kopiëring van 'n objek met geneste objekte implementeer:

<?php class Address { public $city; public function __construct($city) { $this->city = $city; } } class User { public $name; public $address; public function __construct($name, $city) { $this->name = $name; $this->address = new Address($city); } public function __clone() { $this->address = clone $this->address; } } $user1 = new User('John', 'New York'); $user2 = clone $user1; $user2->address->city = 'Boston'; echo $user1->address->city; ?>

Resultaat van die kode-uitvoering:

'New York'

Voorbeeld

Laat ons 'n unieke identifiseerder tydens kloning byvoeg:

<?php class Product { public $id; public $name; public function __construct($name) { $this->id = uniqid(); $this->name = $name; } public function __clone() { $this->id = uniqid(); } } $product1 = new Product('Skootrekenaar'); $product2 = clone $product1; echo $product1->id . ' ' . $product2->id; ?>

Resultaat van die kode-uitvoering (voorbeeld):

'5f1a2b3c 5f1a2b3d'

Sien ook

  • die metode __construct,
    wat die konstruktor van die objek is
Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp