Annotation of embedaddon/php/Zend/tests/closure_020.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Closure 020: Trying to access private property outside class
        !             3: --FILE--
        !             4: <?php
        !             5: 
        !             6: class foo {
        !             7:        private $test = 3;
        !             8:        
        !             9:        public function x() {
        !            10:                $a = &$this;
        !            11:                $this->a = function() use (&$a) { return $a; };
        !            12:                var_dump($this->a->__invoke());
        !            13:                var_dump(is_a($this->a, 'closure'));
        !            14:                var_dump(is_callable($this->a));
        !            15:                
        !            16:                return $this->a;
        !            17:        }
        !            18: }
        !            19: 
        !            20: $foo = new foo;
        !            21: $y = $foo->x();
        !            22: var_dump($y()->test);
        !            23: 
        !            24: ?>
        !            25: --EXPECTF--
        !            26: object(foo)#%d (%d) {
        !            27:   ["test":"foo":private]=>
        !            28:   int(3)
        !            29:   ["a"]=>
        !            30:   object(Closure)#%d (1) {
        !            31:     ["static"]=>
        !            32:     array(1) {
        !            33:       ["a"]=>
        !            34:       *RECURSION*
        !            35:     }
        !            36:   }
        !            37: }
        !            38: bool(true)
        !            39: bool(true)
        !            40: 
        !            41: Fatal error: Cannot access private property foo::$test in %s on line %d

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