clone_003.phpt 974 B

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