Annotation of embedaddon/php/Zend/tests/closure_005.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Closure 005: Lambda inside class, lifetime of $this
                      3: --FILE--
                      4: <?php
                      5: 
                      6: class A {
                      7:        private $x;
                      8: 
                      9:        function __construct($x) {
                     10:                $this->x = $x;
                     11:        }
                     12: 
                     13:        function __destruct() {
                     14:                echo "Destroyed\n";
                     15:        }
                     16: 
                     17:        function getIncer($val) {
                     18:                return function() use ($val) {
                     19:                        $this->x += $val;
                     20:                };
                     21:        }
                     22: 
                     23:        function getPrinter() {
                     24:                return function() {
                     25:                        echo $this->x."\n";
                     26:                };
                     27:        }
                     28:        
                     29:        function getError() {
                     30:                return static function() {
                     31:                        echo $this->x."\n";
                     32:                };
                     33:        }
                     34:        
                     35:        function printX() {
                     36:                echo $this->x."\n";
                     37:        }
                     38: }
                     39: 
                     40: $a = new A(3);
                     41: $incer = $a->getIncer(2);
                     42: $printer = $a->getPrinter();
                     43: $error = $a->getError();
                     44: 
                     45: $a->printX();
                     46: $printer();
                     47: $incer();
                     48: $a->printX();
                     49: $printer();
                     50: 
                     51: unset($a);
                     52: 
                     53: $incer();
                     54: $printer();
                     55: 
                     56: unset($incer);
                     57: $printer();
                     58: 
                     59: unset($printer);
                     60: 
                     61: $error();
                     62: 
                     63: echo "Done\n";
                     64: ?>
                     65: --EXPECTF--
                     66: 3
                     67: 3
                     68: 5
                     69: 5
                     70: 7
                     71: 7
                     72: Destroyed
                     73: 
                     74: Fatal error: Using $this when not in object context in %sclosure_005.php on line 28

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>