Клонирование объектов
Иногда полезно создать копию какого-либо объекта. Разработчики языка РНР 5 позаботились о такой возможности, добавив метод __clone ( ) , а также функцию clone ( $obj ). Разобраться с назначением этого метода и функции лучше всего на примере.
<?php
class clone_foo {
private $x ;
public function setX ( $x ) {
$this->x = $x ;
}
public function getX ( ) {
return $this->x ;
}
}
$f_obj = new clone_foo ;
$f_obj->stX ( 111 ) ;
//Использование метода __clone ( )
// $clone_of_f_obj = $f_obj->__clone ( ) ;
//Использование функции __clone ( )
$clone_of_f_obj = clone ( $f_obj ) ;
$f_obj->setX (15) ;
If ( $f_obj->getX ( ) ! = $clone_of_f_obj->getX ( ) )
{
echo “ Эти копии независимы друг от друга ! ! ! “ ;
}
?>
Итак, с использованием данной функции или метода можно создавать точные копии объектов. В приведенном выше примере была создана копия объекта. После этого атрибуту х объекта-копии было присвоено другое значение, что вполне возможно, поскольку после создания копия абсолютно независима от исходного объекта.