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

1.1       misho       1: --TEST--
                      2: Closure 014: return by value/reference
                      3: --FILE--
                      4: <?php
                      5: class C1 {
                      6:        function __invoke() {
                      7:                return 0;
                      8:        }
                      9: }
                     10: class C2 {
                     11:        function &__invoke(&$a) {
                     12:                return $a;
                     13:        }
                     14: }
                     15: class C3 {
                     16:        function __invoke() {
                     17:        }
                     18: }
                     19: 
                     20: $x = new C1();
                     21: var_dump($x());
                     22: var_dump($x->__invoke());
                     23: $x();
                     24: $x->__invoke();
                     25: $x = function() {
                     26:        return 0;
                     27: };
                     28: var_dump($x());
                     29: var_dump($x->__invoke());
                     30: $x();
                     31: $x->__invoke();
                     32: 
                     33: $x = new C2();
                     34: $a = $b = $c = $d = 1;
                     35: $e =& $x($a);
                     36: $e = 2;
                     37: var_dump($a);
                     38: $e =& $x->__invoke($b);
                     39: $e = 3;
                     40: var_dump($b);
                     41: $x($b);
                     42: $x->__invoke($b);
                     43: $x = function & (&$a) {
                     44:        return $a;
                     45: };
                     46: $e =& $x($c);
                     47: $e = 4;
                     48: var_dump($c);
                     49: $e =& $x->__invoke($d);
                     50: $e = 5;
                     51: var_dump($d);
                     52: $x($d);
                     53: $x->__invoke($d);
                     54: 
                     55: $x = new C3();
                     56: var_dump($x());
                     57: var_dump($x->__invoke());
                     58: $x();
                     59: $x->__invoke();
                     60: $x = function() {
                     61: };
                     62: var_dump($x());
                     63: var_dump($x->__invoke());
                     64: $x();
                     65: $x->__invoke();
                     66: ?>
                     67: --EXPECT--
                     68: int(0)
                     69: int(0)
                     70: int(0)
                     71: int(0)
                     72: int(2)
                     73: int(3)
                     74: int(4)
                     75: int(5)
                     76: NULL
                     77: NULL
                     78: NULL
                     79: NULL

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