@@ -4,88 +4,100 @@ Bug #42819 (namespaces in indexes of constant arrays)
44<?php if (!extension_loaded ("spl " )) print "skip " ; ?>
55--FILE--
66<?php
7+ namespace foo \foo ;
8+
9+ const C = "foo \\foo \\C \n" ;
10+ const I = 12 ;
11+
12+ class foo {
13+ const I = 32 ;
14+ const C = "foo \\foo \\foo::C \n" ;
15+ }
16+
717namespace foo ;
818
9- const C = "foo:: C \n" ;
19+ const C = "foo \\ C \n" ;
1020const I = 11 ;
1121
1222class foo {
13- const C = "foo:: foo::C \n" ;
23+ const C = "foo \\ foo::C \n" ;
1424 const I = 22 ;
1525 const C1 = C ;
16- const C2 = foo:: C;
17- const C3 = foo:: foo::C;
18- const C4 = :: foo:: C;
19- const C5 = :: foo:: foo::C;
26+ const C2 = foo \ C;
27+ const C3 = foo \ foo::C;
28+ const C4 = \ foo \ C;
29+ const C5 = \ foo \ foo::C;
2030 const C6 = ArrayObject::STD_PROP_LIST ;
2131 const C7 = E_ERROR ;
2232}
2333
2434class bar1 {
2535 static $ a1 = array (I => 0 );
26- static $ a2 = array (foo:: I => 0 );
27- static $ a3 = array (foo:: foo::I => 0 );
28- static $ a4 = array (:: foo:: I => 0 );
29- static $ a5 = array (:: foo:: foo::I => 0 );
36+ static $ a2 = array (foo \ I => 0 );
37+ static $ a3 = array (foo \ foo::I => 0 );
38+ static $ a4 = array (\ foo \ I => 0 );
39+ static $ a5 = array (\ foo \ foo::I => 0 );
3040 static $ a6 = array (ArrayObject::STD_PROP_LIST => 0 );
3141 static $ a7 = array (E_ERROR => 0 );
3242}
3343
3444class bar2 {
3545 static $ a1 = array (I => I);
36- static $ a2 = array (foo:: I => I);
37- static $ a3 = array (foo:: foo::I => I);
38- static $ a4 = array (:: foo:: I => I);
39- static $ a5 = array (:: foo:: foo::I => I);
46+ static $ a2 = array (foo \ I => I);
47+ static $ a3 = array (foo \ foo::I => I);
48+ static $ a4 = array (\ foo \ I => I);
49+ static $ a5 = array (\ foo \ foo::I => I);
4050 static $ a6 = array (ArrayObject::STD_PROP_LIST => I);
4151 static $ a7 = array (E_ERROR => I);
4252}
4353
4454class bar3 {
45- static $ a1 = array (I => foo:: I);
46- static $ a2 = array (foo:: I => foo:: I);
47- static $ a3 = array (foo:: foo::I => foo:: I);
48- static $ a4 = array (:: foo:: I => foo:: I);
49- static $ a5 = array (:: foo:: foo::I => foo:: I);
50- static $ a6 = array (ArrayObject::STD_PROP_LIST => foo:: I);
51- static $ a7 = array (E_ERROR => foo:: I);
55+ static $ a1 = array (I => foo \ I);
56+ static $ a2 = array (foo \ I => foo \ I);
57+ static $ a3 = array (foo \ foo::I => foo \ I);
58+ static $ a4 = array (\ foo \ I => foo \ I);
59+ static $ a5 = array (\ foo \ foo::I => foo \ I);
60+ static $ a6 = array (ArrayObject::STD_PROP_LIST => foo \ I);
61+ static $ a7 = array (E_ERROR => foo \ I);
5262}
5363
5464class bar4 {
5565 static $ a1 = array (I => ArrayObject::STD_PROP_LIST );
56- static $ a2 = array (foo:: I => ArrayObject::STD_PROP_LIST );
57- static $ a3 = array (foo:: foo::I => ArrayObject::STD_PROP_LIST );
58- static $ a4 = array (:: foo:: I => ArrayObject::STD_PROP_LIST );
59- static $ a5 = array (:: foo:: foo::I => ArrayObject::STD_PROP_LIST );
66+ static $ a2 = array (foo \ I => ArrayObject::STD_PROP_LIST );
67+ static $ a3 = array (foo \ foo::I => ArrayObject::STD_PROP_LIST );
68+ static $ a4 = array (\ foo \ I => ArrayObject::STD_PROP_LIST );
69+ static $ a5 = array (\ foo \ foo::I => ArrayObject::STD_PROP_LIST );
6070 static $ a6 = array (ArrayObject::STD_PROP_LIST => ArrayObject::STD_PROP_LIST );
6171 static $ a7 = array (E_ERROR => ArrayObject::STD_PROP_LIST );
6272}
6373
6474class bar5 {
6575 static $ a1 = array (I => E_ERROR );
66- static $ a2 = array (foo:: I => E_ERROR );
67- static $ a3 = array (foo:: foo::I => E_ERROR );
68- static $ a4 = array (:: foo:: I => E_ERROR );
69- static $ a5 = array (:: foo:: foo::I => E_ERROR );
76+ static $ a2 = array (foo \ I => E_ERROR );
77+ static $ a3 = array (foo \ foo::I => E_ERROR );
78+ static $ a4 = array (\ foo \ I => E_ERROR );
79+ static $ a5 = array (\ foo \ foo::I => E_ERROR );
7080 static $ a6 = array (ArrayObject::STD_PROP_LIST => E_ERROR );
7181 static $ a7 = array (E_ERROR => E_ERROR );
7282}
7383
84+ echo "first \n" ;
7485echo C;
86+ echo foo \C;
87+ echo foo \foo::C;
7588echo foo::C;
76- echo foo::foo::C;
77- echo ::foo::C;
78- echo ::foo::foo::C;
89+ echo \foo \foo::C;
7990echo ArrayObject::STD_PROP_LIST . "\n" ;
8091echo E_ERROR . "\n" ;
8192
82- echo foo::foo::C1 ;
83- echo foo::foo::C2 ;
84- echo foo::foo::C3 ;
85- echo foo::foo::C4 ;
86- echo foo::foo::C5 ;
87- echo foo::foo::C6 . "\n" ;
88- echo foo::foo::C7 . "\n" ;
93+ echo "second \n" ;
94+ echo \foo \foo::C1 ;
95+ echo \foo \foo::C2 ;
96+ echo \foo \foo::C3 ;
97+ echo \foo \foo::C4 ;
98+ echo \foo \foo::C5 ;
99+ echo \foo \foo::C6 . "\n" ;
100+ echo \foo \foo::C7 . "\n" ;
89101
90102print_r (bar1::$ a1 );
91103print_r (bar1::$ a2 );
@@ -126,20 +138,24 @@ print_r(bar5::$a4);
126138print_r (bar5::$ a5 );
127139print_r (bar5::$ a6 );
128140print_r (bar5::$ a7 );
141+ function oops ($ a = array (foo \unknown)){}
142+ oops ();
129143?>
130- --EXPECT--
131- foo::C
132- foo::C
133- foo::foo::C
134- foo::C
135- foo::foo::C
144+ --EXPECTF--
145+ first
146+ foo\C
147+ foo\foo\C
148+ foo\foo\foo::C
149+ foo\foo::C
150+ foo\foo::C
1361511
1371521
138- foo::C
139- foo::C
140- foo::foo::C
141- foo::C
142- foo::foo::C
153+ second
154+ foo\C
155+ foo\foo\C
156+ foo\foo\foo::C
157+ foo\C
158+ foo\foo::C
1431591
1441601
145161Array
@@ -148,11 +164,11 @@ Array
148164)
149165Array
150166(
151- [11 ] => 0
167+ [12 ] => 0
152168)
153169Array
154170(
155- [22 ] => 0
171+ [32 ] => 0
156172)
157173Array
158174(
@@ -176,11 +192,11 @@ Array
176192)
177193Array
178194(
179- [11 ] => 11
195+ [12 ] => 11
180196)
181197Array
182198(
183- [22 ] => 11
199+ [32 ] => 11
184200)
185201Array
186202(
@@ -200,43 +216,43 @@ Array
200216)
201217Array
202218(
203- [11] => 11
219+ [11] => 12
204220)
205221Array
206222(
207- [11 ] => 11
223+ [12 ] => 12
208224)
209225Array
210226(
211- [22 ] => 11
227+ [32 ] => 12
212228)
213229Array
214230(
215- [11] => 11
231+ [11] => 12
216232)
217233Array
218234(
219- [22] => 11
235+ [22] => 12
220236)
221237Array
222238(
223- [1] => 11
239+ [1] => 12
224240)
225241Array
226242(
227- [1] => 11
243+ [1] => 12
228244)
229245Array
230246(
231247 [11] => 1
232248)
233249Array
234250(
235- [11 ] => 1
251+ [12 ] => 1
236252)
237253Array
238254(
239- [22 ] => 1
255+ [32 ] => 1
240256)
241257Array
242258(
@@ -260,11 +276,11 @@ Array
260276)
261277Array
262278(
263- [11 ] => 1
279+ [12 ] => 1
264280)
265281Array
266282(
267- [22 ] => 1
283+ [32 ] => 1
268284)
269285Array
270286(
@@ -282,3 +298,5 @@ Array
282298(
283299 [1] => 1
284300)
301+
302+ Fatal error: Undefined constant 'foo\foo\unknown' in %sbug42819.php on line %d
0 commit comments