Mbinu ya __clone
Mbinu __clone huitwa moja kwa moja wakati wa kutumia kiendeshaji clone.
Inaruhusu kufafanua mantiki maalum ya nakala ya kitu. Kwa default, PHP
hufanya nakala ya juu ya sifa zote za kitu. Mbinu __clone ni muhimu
wakati inahitajika kutekeleza nakala ya kina au kubadilisha tabia wakati wa uigaji.
Syntax
public function __clone(): void
Mfano
Tutekeleze uigaji wa msingi wa kitu:
<?php
class User {
public $name;
public function __construct($name) {
$this->name = $name;
}
public function __clone() {
echo 'Kitu kimeigwa';
}
}
$user1 = new User('John');
$user2 = clone $user1;
?>
Matokeo ya utekelezaji wa kificho:
'Kitu kimeigwa'
Mfano
Tutekeleze nakala ya kina ya kitu na vitu vilivyomo:
<?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;
?>
Matokeo ya utekelezaji wa kificho:
'New York'
Mfano
Tuongeze kitambulisho cha kipekee wakati wa uigaji:
<?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('Laptop');
$product2 = clone $product1;
echo $product1->id . ' ' . $product2->id;
?>
Matokeo ya utekelezaji wa kificho (mfano):
'5f1a2b3c 5f1a2b3d'
Tazama pia
-
mbinu
__construct,
ambayo ni kijenzi kitu