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