Cloning an aggregated class : clone « Class « PHP






Cloning an aggregated class

 
<?
class Address { 
  protected $city;
  protected $country;
 
  public function setCity($city) { $this->city = $city; }
  public function getCity() { return $this->city; } 
  public function setCountry($country) { $this->country = $country; }
  public function getCountry() { return $this-> country;}
}

class Person {
 protected $name;
 protected $address;

 public function __construct() { $this->address = new Address; }
 public function setName($name) { $this->name = $name; }
 public function getName() { return $this->name; }
 public function __call($method, $arguments) { 
  if (method_exists($this->address, $method)) { 
   return call_user_func_array( array($this->address, $method), $arguments);
  }
 }
}

$a = new Person;
$a->setName('A');
$a->setCity('B');

$z = clone $a;
$z->setName('Z');
$z->setCity('T');

print $a->getName() . ' lives in ' . $a->getCity() . '.';
print $z->getName() . ' lives in ' . $z->getCity() . '.';

?>
  
  








Related examples in the same category

1.clone class instance
2.Change class instance after clone
3.clone a class
4.Copying Objects
5.Parents clone
6.Properly implementing cloning in aggregated classes