bug74862_2.phpt 572 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --TEST--
  2. Bug #74862 (Unable to clone instance when private __clone defined in a child class)
  3. --FILE--
  4. <?php
  5. class main {
  6. }
  7. class a extends main {
  8. private function __clone()
  9. {
  10. }
  11. private function __construct()
  12. {
  13. }
  14. public static function getInstance()
  15. {
  16. return new static();
  17. }
  18. public function cloneIt()
  19. {
  20. $a = clone $this;
  21. return $a;
  22. }
  23. }
  24. class c extends a {
  25. }
  26. // private constructor
  27. $d = c::getInstance();
  28. // private clone
  29. $e = $d->cloneIt();
  30. var_dump($e);
  31. ?>
  32. --EXPECT--
  33. object(c)#2 (0) {
  34. }