Từ khóa nhân bản PHP
Ví dụ
Tạo một bản sao của một đối tượng:
<?php
class MyClass {
public $color;
public $amount;
}
$obj = new MyClass();
$obj->color = "red";
$obj->amount = 5;
$copy = clone $obj;
print_r($copy);
?>
Hãy tự mình thử »Định nghĩa và cách sử dụng
Từ khóa clone
được sử dụng để tạo bản sao của một đối tượng.
Nếu bất kỳ thuộc tính nào là tham chiếu đến biến hoặc đối tượng khác thì chỉ tham chiếu được sao chép. Các đối tượng luôn được truyền bằng tham chiếu, vì vậy nếu đối tượng ban đầu có một đối tượng khác trong thuộc tính của nó thì bản sao sẽ trỏ đến cùng một đối tượng. Hành vi này có thể được thay đổi bằng cách tạo phương thức __clone()
trong lớp.
Trang liên quan
Đọc thêm về các lớp trong Hướng dẫn về lớp và đối tượng PHP của chúng tôi.
Thêm ví dụ
Ví dụ
Tạo một bản sao của một đối tượng có tham chiếu:
<?php
class MyClass {
public $amount;
}
// Create an object with a
reference
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;
// Clone the object
$copy = clone $obj;
// Change the value in the
original object
$obj->amount = 6;
// The copy is changed
print_r($copy);
?>
Hãy tự mình thử »Ví dụ
Sử dụng phương thức __clone()
để ngắt tham chiếu trong đối tượng được sao chép:
<?php
class MyClass {
public $amount;
public function __clone() {
$value = $this->amount;
unset($this->amount); // Unset breaks references
$this->amount = $value;
}
}
// Create an object with a reference
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;
// Clone
the object
$copy = clone $obj;
// Change the value in the original
object
$obj->amount = 6;
// The copy is not changed
print_r($copy);
?>
Hãy tự mình thử »❮ Từ khóa PHP