1: --TEST--
2: Bug #39018 (Error control operator '@' fails to suppress "Uninitialized string offset")
3: --FILE--
4: <?php
5:
6: error_reporting(E_ALL);
7:
8: $a = 'foo';
9: $a[111111111111111111111];
10:
11: $a = '';
12:
13: $a[0];
14:
15: print $a[0]; // 12
16:
17: $a[-11111111111111111111111];
18:
19: print $a[-11111111111111111111111]; // 16
20:
21: $a[-0];
22:
23: $x = 'test';
24:
25: @$x[4];
26:
27: @$y = $x[4];
28:
29: @('a' == $x[4]);
30:
31: $x[4] == 'a'; // 28
32:
33: @$x[4] == 'a';
34:
35: (@$x[4]) == 'a';
36:
37: ($x[4]) == 'a'; // 34
38:
39: (@($x[4])) == 'a';
40:
41: (($x[4])) == 'a'; // 38
42:
43: @($x[4]) == 'a';
44:
45: ($x[4]) == 'a'; // 42
46:
47: @($x[4] == 'a');
48:
49: ($x[4] == 'a'); // 46
50:
51: $y = 'foobar';
52:
53: $y[12.2];
54:
55: print $y[12.2]; // 52
56:
57: $y[3.5];
58:
59: print $y[3.5]; // 56
60:
61: print "\nDone\n";
62:
63: ?>
64: --EXPECTF--
65: Notice: String offset cast occurred in %s on line %d
66:
67: Notice: Uninitialized string offset: 0 in %s on line %d
68:
69: Notice: Uninitialized string offset: 0 in %s on line %d
70:
71: Notice: String offset cast occurred in %s on line %d
72:
73: Notice: Uninitialized string offset: %i in %s on line %d
74:
75: Notice: String offset cast occurred in %s on line %d
76:
77: Notice: Uninitialized string offset: %i in %s on line %d
78:
79: Notice: Uninitialized string offset: 0 in %s on line %d
80:
81: Notice: Uninitialized string offset: 4 in %s on line %d
82:
83: Notice: Uninitialized string offset: 4 in %s on line %d
84:
85: Notice: Uninitialized string offset: 4 in %s on line %d
86:
87: Notice: Uninitialized string offset: 4 in %s on line %d
88:
89: Notice: Uninitialized string offset: 4 in %s on line %d
90:
91: Notice: String offset cast occurred in %s on line %d
92:
93: Notice: Uninitialized string offset: 12 in %s on line %d
94:
95: Notice: String offset cast occurred in %s on line %d
96:
97: Notice: Uninitialized string offset: 12 in %s on line %d
98:
99: Notice: String offset cast occurred in %s on line %d
100:
101: Notice: String offset cast occurred in %s on line %d
102: b
103: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>