xref: /PHP-8.0/Zend/tests/indexing_001.phpt (revision 418fcd22)
1--TEST--
2Indexing - various special cases.
3--FILE--
4<?php
5echo "*** Indexing - Testing value assignment with key ***\n";
6$array=array(1);
7$testvalues=array(null, 0, 1, true, false,'',' ',0.1,array());
8
9foreach ($testvalues as $testvalue) {
10    try {
11        $testvalue['foo']=$array;
12    } catch (Error $e) {
13        echo $e->getMessage(), "\n";
14    }
15    var_dump($testvalue);
16}
17echo "\n*** Indexing - Testing reference assignment with key ***\n";
18
19$testvalues=array(null, 0, 1, true, false,0.1,array());
20
21foreach ($testvalues as $testvalue) {
22    try {
23        $testvalue['foo']=&$array;
24    } catch (Error $e) {
25        echo $e->getMessage(), "\n";
26    }
27    var_dump($testvalue);
28}
29echo "*** Indexing - Testing value assignment no key ***\n";
30$array=array(1);
31$testvalues=array(null, 0, 1, true, false,0.1,array());
32
33foreach ($testvalues as $testvalue) {
34    try {
35        $testvalue[]=$array;
36    } catch (Error $e) {
37        echo $e->getMessage(), "\n";
38    }
39    var_dump ($testvalue);
40}
41echo "\n*** Indexing - Testing reference assignment no key ***\n";
42
43$testvalues=array(null, 0, 1, true, false,0.1,array());
44
45foreach ($testvalues as $testvalue) {
46    try {
47        $testvalue[]=&$array;
48    } catch (Error $e) {
49        echo $e->getMessage(), "\n";
50    }
51    var_dump ($testvalue);
52}
53
54?>
55--EXPECT--
56*** Indexing - Testing value assignment with key ***
57array(1) {
58  ["foo"]=>
59  array(1) {
60    [0]=>
61    int(1)
62  }
63}
64Cannot use a scalar value as an array
65int(0)
66Cannot use a scalar value as an array
67int(1)
68Cannot use a scalar value as an array
69bool(true)
70array(1) {
71  ["foo"]=>
72  array(1) {
73    [0]=>
74    int(1)
75  }
76}
77Cannot access offset of type string on string
78string(0) ""
79Cannot access offset of type string on string
80string(1) " "
81Cannot use a scalar value as an array
82float(0.1)
83array(1) {
84  ["foo"]=>
85  array(1) {
86    [0]=>
87    int(1)
88  }
89}
90
91*** Indexing - Testing reference assignment with key ***
92array(1) {
93  ["foo"]=>
94  &array(1) {
95    [0]=>
96    int(1)
97  }
98}
99Cannot use a scalar value as an array
100int(0)
101Cannot use a scalar value as an array
102int(1)
103Cannot use a scalar value as an array
104bool(true)
105array(1) {
106  ["foo"]=>
107  &array(1) {
108    [0]=>
109    int(1)
110  }
111}
112Cannot use a scalar value as an array
113float(0.1)
114array(1) {
115  ["foo"]=>
116  &array(1) {
117    [0]=>
118    int(1)
119  }
120}
121*** Indexing - Testing value assignment no key ***
122array(1) {
123  [0]=>
124  array(1) {
125    [0]=>
126    int(1)
127  }
128}
129Cannot use a scalar value as an array
130int(0)
131Cannot use a scalar value as an array
132int(1)
133Cannot use a scalar value as an array
134bool(true)
135array(1) {
136  [0]=>
137  array(1) {
138    [0]=>
139    int(1)
140  }
141}
142Cannot use a scalar value as an array
143float(0.1)
144array(1) {
145  [0]=>
146  array(1) {
147    [0]=>
148    int(1)
149  }
150}
151
152*** Indexing - Testing reference assignment no key ***
153array(1) {
154  [0]=>
155  &array(1) {
156    [0]=>
157    int(1)
158  }
159}
160Cannot use a scalar value as an array
161int(0)
162Cannot use a scalar value as an array
163int(1)
164Cannot use a scalar value as an array
165bool(true)
166array(1) {
167  [0]=>
168  &array(1) {
169    [0]=>
170    int(1)
171  }
172}
173Cannot use a scalar value as an array
174float(0.1)
175array(1) {
176  [0]=>
177  &array(1) {
178    [0]=>
179    int(1)
180  }
181}
182