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>