347 of 410 menu

Phương thức __clone

Phương thức __clone được gọi tự động khi sử dụng toán tử clone. Nó cho phép xác định logic sao chép đối tượng riêng. Theo mặc định, PHP thực hiện sao chép nông tất cả các thuộc tính của đối tượng. Phương thức __clone hữu ích khi cần triển khai sao chép sâu hoặc thay đổi hành vi khi nhân bản.

Cú pháp

public function __clone(): void

Ví dụ

Triển khai nhân bản đối tượng cơ bản:

<?php class User { public $name; public function __construct($name) { $this->name = $name; } public function __clone() { echo 'Đối tượng đã được nhân bản'; } } $user1 = new User('John'); $user2 = clone $user1; ?>

Kết quả thực thi mã:

'Đối tượng đã được nhân bản'

Ví dụ

Triển khai sao chép sâu đối tượng với các đối tượng lồng nhau:

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

Kết quả thực thi mã:

'New York'

Ví dụ

Thêm định danh duy nhất khi nhân bản:

<?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('Máy tính xách tay'); $product2 = clone $product1; echo $product1->id . ' ' . $product2->id; ?>

Kết quả thực thi mã (ví dụ):

'5f1a2b3c 5f1a2b3d'

Xem thêm

  • phương thức __construct,
    mà là hàm tạo đối tượng
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối