Return to this.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / classes |
1.1 ! misho 1: --TEST-- ! 2: ZE2 $this cannot be exchanged ! 3: --SKIPIF-- ! 4: <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> ! 5: --FILE-- ! 6: <?php ! 7: ! 8: /* please don't shorten this test. It shows what would happen if ! 9: * the fatal error would have been a warning. ! 10: */ ! 11: class Foo ! 12: { ! 13: function replace($other) ! 14: { ! 15: echo __METHOD__ . "\n"; ! 16: $this = $other; ! 17: print $this->prop; ! 18: print $other->prop; ! 19: } ! 20: ! 21: function indirect($other) ! 22: { ! 23: echo __METHOD__ . "\n"; ! 24: $this = $other; ! 25: $result = $this = $other; ! 26: print $result->prop; ! 27: print $this->prop; ! 28: } ! 29: ! 30: function retrieve(&$other) ! 31: { ! 32: echo __METHOD__ . "\n"; ! 33: $other = $this; ! 34: } ! 35: } ! 36: ! 37: $object = new Foo; ! 38: $object->prop = "Hello\n"; ! 39: ! 40: $other = new Foo; ! 41: $other->prop = "World\n"; ! 42: ! 43: $object->replace($other); ! 44: $object->indirect($other); ! 45: ! 46: print $object->prop; // still shows 'Hello' ! 47: ! 48: $object->retrieve($other); ! 49: print $other->prop; // shows 'Hello' ! 50: ! 51: ?> ! 52: ===DONE=== ! 53: --EXPECTF-- ! 54: Fatal error: Cannot re-assign $this in %sthis.php on line %d