clone_003.phpt 914 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. --TEST--
  2. ZE2 object cloning, 3
  3. --FILE--
  4. <?php
  5. class base {
  6. protected $p1 = 'base:1';
  7. public $p2 = 'base:2';
  8. public $p3 = 'base:3';
  9. public $p4 = 'base:4';
  10. public $p5 = 'base:5';
  11. private $p6 = 'base:6';
  12. public function __clone() {
  13. }
  14. };
  15. class test extends base {
  16. public $p1 = 'test:1';
  17. public $p3 = 'test:3';
  18. public $p4 = 'test:4';
  19. public $p5 = 'test:5';
  20. public function __clone() {
  21. $this->p5 = 'clone:5';
  22. }
  23. }
  24. $obj = new test;
  25. $obj->p4 = 'A';
  26. $copy = clone $obj;
  27. echo "Object\n";
  28. print_r($obj);
  29. echo "Clown\n";
  30. print_r($copy);
  31. echo "Done\n";
  32. ?>
  33. --EXPECT--
  34. Object
  35. test Object
  36. (
  37. [p1] => test:1
  38. [p2] => base:2
  39. [p3] => test:3
  40. [p4] => A
  41. [p5] => test:5
  42. [p6:base:private] => base:6
  43. )
  44. Clown
  45. test Object
  46. (
  47. [p1] => test:1
  48. [p2] => base:2
  49. [p3] => test:3
  50. [p4] => A
  51. [p5] => clone:5
  52. [p6:base:private] => base:6
  53. )
  54. Done