Annotation of embedaddon/php/tests/classes/this.phpt, revision 1.1.1.1
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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>