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>