Creating a copy of an object with fully replicated properties is not
always the wanted behavior. A good example of the need for copy
constructors, is if you have an object which represents a GTK window and the
object holds the resource of this GTK window, when you create a duplicate
you might want to create a new window with the same properties and have the
new object hold the resource of the new window. Another example is if your
object holds a reference to another object which it uses and when you
replicate the parent object you want to create a new instance of this other
object so that the replica has its own separate copy.
An object copy is created by using the clone keyword (which calls the
object's __clone() method if possible). An object's __clone() method
cannot be called directly.
$copy_of_object = clone $object;
When an object is cloned, PHP 5 will perform a shallow copy of all of the
object's properties. Any properties that are references to other variables,
will remain references. If a __clone() method is defined, then the newly
created object's __clone() method will be called, to allow any necessary
properties that need to be changed.
Example 19-29. Cloning an object
<?php class SubObject { static $instances = 0; public $instance;
public function __construct() { $this->instance = ++self::$instances; }
public function __clone() { $this->instance = ++self::$instances; } }
class MyCloneable { public $object1; public $object2;
function __clone() { // Force a copy of this->object, otherwise // it will point to same object. $this->object1 = clone($this->object1); } }
$obj = new MyCloneable();
$obj->object1 = new SubObject(); $obj->object2 = new SubObject();
language.oop5.cloning php code on this is provided for your study purpose, it will guide you to know how create and design a website using php. use it to practice and train your self online
Php language.oop5.cloning syntax tutorial
php tutorial guide and code design are for easy learning and programming. The code practice section provided at the top is for practising of this syntax. Use the code section up to practice your php programming online. Learning php is very easy, all you need is to use the examples on this site and practice them to perfect your skills.