347 of 410 menu

__clone մեթոդը

__clone մեթոդը ավտոմատ կերպով կանչվում է clone օպերատորի օգտագործման ժամանակ: Այն թույլ է տալիս սահմանել օբյեկտի պատճենման սեփական տրամաբանությունը: Լռելյայնորեն PHP-ն կատարում է օբյեկտի բոլոր հատկությունների մակերեսային պատճենում: __clone մեթոդը օգտակար է, երբ անհրաժեշտ է իրականացնել խորը պատճենում կամ փոխել վարքագիծը կլոնավորման ժամանակ:

Շարահյուսություն

public function __clone(): void

Օրինակ

Իրականացնենք օբյեկտի հիմնական կլոնավորումը.

<?php class User { public $name; public function __construct($name) { $this->name = $name; } public function __clone() { echo 'Օբյեկտը կլոնավորվել է'; } } $user1 = new User('John'); $user2 = clone $user1; ?>

Կոդի կատարման արդյունքը.

'Օբյեկտը կլոնավորվել է'

Օրինակ

Իրականացնենք օբյեկտի խորը պատճենումը ներդրված օբյեկտներով.

<?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; ?>

Կոդի կատարման արդյունքը.

'New York'

Օրինակ

Ավելացնենք ունիկալ նույնացուցիչ կլոնավորման ժամանակ.

<?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; ?>

Կոդի կատարման արդյունքը (օրինակ).

'5f1a2b3c 5f1a2b3d'

Տես նաև

  • __construct մեթոդը,
    որը օբյեկտի կոնստրուկտորն է
Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել