Annotation of embedaddon/php/tests/classes/this.phpt, revision 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>