PHP clone Keyword
Example
Create a copy of an object:
<?php
class MyClass {
public $color;
public $amount;
}
$obj = new MyClass();
$obj->color = "red";
$obj->amount = 5;
$copy = clone $obj;
print_r($copy);
?>
Try it Yourself »
Definition and Usage
The clone
keyword is used to create a copy of an object.
If any of the properties was a reference to another variable or object, then only the
reference is copied. Objects are always passed by reference, so if the original object has
another object in its properties, the copy will point to the same object. This behavior can be
changed by creating a __clone()
method in the class.
Related Pages
Read more about classes in our PHP Classes and Objects Tutorial.
More Examples
Example
Create a copy of an object which has a reference:
<?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);
?>
Try it Yourself »
Example
Use a __clone()
method to break references in a copied object:
<?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);
?>
Try it Yourself »
❮ PHP Keywords