Annotation of embedaddon/php/Zend/tests/dereference_002.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Testing array dereference on method calls
3: --FILE--
4: <?php
5:
6: error_reporting(E_ALL);
7:
8: class foo {
9: public function bar() {
10: $x = array();
11: $x[] = 3;
12: $x[] = array(1, 5);
13: $x[] = new foo;
14: return $x;
15: }
16: }
17:
18: $foo = new foo;
19:
20: var_dump($x = $foo->bar()[1]);
21: var_dump($foo->bar()[1][1]);
22: var_dump($x[0]);
23: var_dump($x = $foo->bar()[2]);
24: var_dump($x->bar());
25: var_dump($x->bar()[0]);
26:
27: $x = array();
28: $x[] = new foo;
29: var_dump($x[0]->bar()[2]);
30: var_dump($foo->bar()[2]->bar()[1]);
31: var_dump($foo->bar()[2]->bar()[2]->bar()[1][0]);
32: var_dump($foo->bar()[2]->bar()[2]->bar()[1][0][1]);
33: var_dump($foo->bar()[2]->bar()[2]->bar()[4]);
34: var_dump($foo->bar()[3]->bar());
35:
36: ?>
37: --EXPECTF--
38: array(2) {
39: [0]=>
40: int(1)
41: [1]=>
42: int(5)
43: }
44: int(5)
45: int(1)
46: object(foo)#2 (0) {
47: }
48: array(3) {
49: [0]=>
50: int(3)
51: [1]=>
52: array(2) {
53: [0]=>
54: int(1)
55: [1]=>
56: int(5)
57: }
58: [2]=>
59: object(foo)#3 (0) {
60: }
61: }
62: int(3)
63: object(foo)#3 (0) {
64: }
65: array(2) {
66: [0]=>
67: int(1)
68: [1]=>
69: int(5)
70: }
71: int(1)
72: NULL
73:
74: Notice: Undefined offset: 4 in %s on line %d
75: NULL
76:
77: Notice: Undefined offset: 3 in %s on line %d
78:
79: Fatal error: Call to a member function bar() on a non-object in %s on line %d
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>