+38(044) 277-40-42
+38(063) 233-01-83
+38(044) 277-42-05
+38(063) 233-01-83

Клонирование объектов в языке PHP

Клонирование объектов
 
Иногда полезно создать копию какого-либо объекта. Разработчики языка РНР 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 “ Эти копии независимы друг от друга ! ! ! “ ;
}
?>
Итак, с использованием данной функции или метода можно создавать точные копии объектов. В приведенном выше примере была создана копия объекта. После этого атрибуту х объекта-копии было присвоено другое значение, что вполне возможно, поскольку после создания копия абсолютно независима от исходного объекта.