Ключевое слово клонирования PHP
Пример
Создайте копию объекта:
<?php
class MyClass {
public $color;
public $amount;
}
$obj = new MyClass();
$obj->color = "red";
$obj->amount = 5;
$copy = clone $obj;
print_r($copy);
?>
Определение и использование
Ключевое clone
слово используется для создания копии объекта.
Если какое-либо из свойств было ссылкой на другую переменную или объект, копируется только ссылка. Объекты всегда передаются по ссылке, поэтому, если исходный объект имеет в своих свойствах другой объект, копия будет указывать на тот же объект. Это поведение можно изменить, создав __clone()
метод в классе.
Связанные страницы
Подробнее о классах читайте в нашем учебнике по классам и объектам PHP .
Дополнительные примеры
Пример
Создайте копию объекта со ссылкой:
<?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);
?>
Пример
Используйте __clone()
метод для разрыва ссылок в скопированном объекте:
<?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);
?>
❮ Ключевые слова PHP