fork download
  1. <?php
  2.  
  3. class Inside {
  4. public $a = 1;
  5. public function setA($a){
  6. $this->a = $a;
  7. }
  8. }
  9.  
  10. class Base {
  11. public $inside;
  12. public function __clone() {
  13. $this->inside = clone $this->inside;
  14. }
  15. }
  16.  
  17. $base = new Base();
  18. $base->inside = new Inside();
  19.  
  20. var_dump($base);
  21.  
  22. $clone = clone $base;
  23.  
  24. $base->inside->setA(2);
  25.  
  26. var_dump($clone);
  27.  
Success #stdin #stdout 0.02s 23616KB
stdin
Standard input is empty
stdout
object(Base)#1 (1) {
  ["inside"]=>
  object(Inside)#2 (1) {
    ["a"]=>
    int(1)
  }
}
object(Base)#3 (1) {
  ["inside"]=>
  object(Inside)#4 (1) {
    ["a"]=>
    int(1)
  }
}