Annotation of embedaddon/php/tests/classes/clone_004.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ZE2 object cloning, 4
! 3: --FILE--
! 4: <?php
! 5: abstract class base {
! 6: public $a = 'base';
! 7:
! 8: // disallow cloning
! 9: private function __clone() {}
! 10: }
! 11:
! 12: class test extends base {
! 13: public $b = 'test';
! 14:
! 15: // reenable cloning
! 16: public function __clone() {}
! 17:
! 18: public function show() {
! 19: var_dump($this);
! 20: }
! 21: }
! 22:
! 23: echo "Original\n";
! 24: $o1 = new test;
! 25: $o1->a = array(1,2);
! 26: $o1->b = array(3,4);
! 27: $o1->show();
! 28:
! 29: echo "Clone\n";
! 30: $o2 = clone $o1;
! 31: $o2->show();
! 32:
! 33: echo "Modify\n";
! 34: $o2->a = 5;
! 35: $o2->b = 6;
! 36: $o2->show();
! 37:
! 38: echo "Done\n";
! 39: ?>
! 40: --EXPECT--
! 41: Original
! 42: object(test)#1 (2) {
! 43: ["b"]=>
! 44: array(2) {
! 45: [0]=>
! 46: int(3)
! 47: [1]=>
! 48: int(4)
! 49: }
! 50: ["a"]=>
! 51: array(2) {
! 52: [0]=>
! 53: int(1)
! 54: [1]=>
! 55: int(2)
! 56: }
! 57: }
! 58: Clone
! 59: object(test)#2 (2) {
! 60: ["b"]=>
! 61: array(2) {
! 62: [0]=>
! 63: int(3)
! 64: [1]=>
! 65: int(4)
! 66: }
! 67: ["a"]=>
! 68: array(2) {
! 69: [0]=>
! 70: int(1)
! 71: [1]=>
! 72: int(2)
! 73: }
! 74: }
! 75: Modify
! 76: object(test)#2 (2) {
! 77: ["b"]=>
! 78: int(6)
! 79: ["a"]=>
! 80: int(5)
! 81: }
! 82: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>