1--TEST--
2Test + operator : various numbers as strings
3--FILE--
4<?php
5
6$strVals = array(
7   "0","65","-44", "1.2", "-7.7", "abc", "123abc", "123e5", "123e5xyz", " 123abc", "123 abc", "123abc ", "3.4a",
8   "a5.9"
9);
10
11error_reporting(E_ERROR);
12
13foreach ($strVals as $strVal) {
14   foreach($strVals as $otherVal) {
15	   echo "--- testing: '$strVal' + '$otherVal' ---\n";
16      var_dump($strVal+$otherVal);
17   }
18}
19
20
21?>
22===DONE===
23--EXPECT--
24--- testing: '0' + '0' ---
25int(0)
26--- testing: '0' + '65' ---
27int(65)
28--- testing: '0' + '-44' ---
29int(-44)
30--- testing: '0' + '1.2' ---
31float(1.2)
32--- testing: '0' + '-7.7' ---
33float(-7.7)
34--- testing: '0' + 'abc' ---
35int(0)
36--- testing: '0' + '123abc' ---
37int(123)
38--- testing: '0' + '123e5' ---
39float(12300000)
40--- testing: '0' + '123e5xyz' ---
41float(12300000)
42--- testing: '0' + ' 123abc' ---
43int(123)
44--- testing: '0' + '123 abc' ---
45int(123)
46--- testing: '0' + '123abc ' ---
47int(123)
48--- testing: '0' + '3.4a' ---
49float(3.4)
50--- testing: '0' + 'a5.9' ---
51int(0)
52--- testing: '65' + '0' ---
53int(65)
54--- testing: '65' + '65' ---
55int(130)
56--- testing: '65' + '-44' ---
57int(21)
58--- testing: '65' + '1.2' ---
59float(66.2)
60--- testing: '65' + '-7.7' ---
61float(57.3)
62--- testing: '65' + 'abc' ---
63int(65)
64--- testing: '65' + '123abc' ---
65int(188)
66--- testing: '65' + '123e5' ---
67float(12300065)
68--- testing: '65' + '123e5xyz' ---
69float(12300065)
70--- testing: '65' + ' 123abc' ---
71int(188)
72--- testing: '65' + '123 abc' ---
73int(188)
74--- testing: '65' + '123abc ' ---
75int(188)
76--- testing: '65' + '3.4a' ---
77float(68.4)
78--- testing: '65' + 'a5.9' ---
79int(65)
80--- testing: '-44' + '0' ---
81int(-44)
82--- testing: '-44' + '65' ---
83int(21)
84--- testing: '-44' + '-44' ---
85int(-88)
86--- testing: '-44' + '1.2' ---
87float(-42.8)
88--- testing: '-44' + '-7.7' ---
89float(-51.7)
90--- testing: '-44' + 'abc' ---
91int(-44)
92--- testing: '-44' + '123abc' ---
93int(79)
94--- testing: '-44' + '123e5' ---
95float(12299956)
96--- testing: '-44' + '123e5xyz' ---
97float(12299956)
98--- testing: '-44' + ' 123abc' ---
99int(79)
100--- testing: '-44' + '123 abc' ---
101int(79)
102--- testing: '-44' + '123abc ' ---
103int(79)
104--- testing: '-44' + '3.4a' ---
105float(-40.6)
106--- testing: '-44' + 'a5.9' ---
107int(-44)
108--- testing: '1.2' + '0' ---
109float(1.2)
110--- testing: '1.2' + '65' ---
111float(66.2)
112--- testing: '1.2' + '-44' ---
113float(-42.8)
114--- testing: '1.2' + '1.2' ---
115float(2.4)
116--- testing: '1.2' + '-7.7' ---
117float(-6.5)
118--- testing: '1.2' + 'abc' ---
119float(1.2)
120--- testing: '1.2' + '123abc' ---
121float(124.2)
122--- testing: '1.2' + '123e5' ---
123float(12300001.2)
124--- testing: '1.2' + '123e5xyz' ---
125float(12300001.2)
126--- testing: '1.2' + ' 123abc' ---
127float(124.2)
128--- testing: '1.2' + '123 abc' ---
129float(124.2)
130--- testing: '1.2' + '123abc ' ---
131float(124.2)
132--- testing: '1.2' + '3.4a' ---
133float(4.6)
134--- testing: '1.2' + 'a5.9' ---
135float(1.2)
136--- testing: '-7.7' + '0' ---
137float(-7.7)
138--- testing: '-7.7' + '65' ---
139float(57.3)
140--- testing: '-7.7' + '-44' ---
141float(-51.7)
142--- testing: '-7.7' + '1.2' ---
143float(-6.5)
144--- testing: '-7.7' + '-7.7' ---
145float(-15.4)
146--- testing: '-7.7' + 'abc' ---
147float(-7.7)
148--- testing: '-7.7' + '123abc' ---
149float(115.3)
150--- testing: '-7.7' + '123e5' ---
151float(12299992.3)
152--- testing: '-7.7' + '123e5xyz' ---
153float(12299992.3)
154--- testing: '-7.7' + ' 123abc' ---
155float(115.3)
156--- testing: '-7.7' + '123 abc' ---
157float(115.3)
158--- testing: '-7.7' + '123abc ' ---
159float(115.3)
160--- testing: '-7.7' + '3.4a' ---
161float(-4.3)
162--- testing: '-7.7' + 'a5.9' ---
163float(-7.7)
164--- testing: 'abc' + '0' ---
165int(0)
166--- testing: 'abc' + '65' ---
167int(65)
168--- testing: 'abc' + '-44' ---
169int(-44)
170--- testing: 'abc' + '1.2' ---
171float(1.2)
172--- testing: 'abc' + '-7.7' ---
173float(-7.7)
174--- testing: 'abc' + 'abc' ---
175int(0)
176--- testing: 'abc' + '123abc' ---
177int(123)
178--- testing: 'abc' + '123e5' ---
179float(12300000)
180--- testing: 'abc' + '123e5xyz' ---
181float(12300000)
182--- testing: 'abc' + ' 123abc' ---
183int(123)
184--- testing: 'abc' + '123 abc' ---
185int(123)
186--- testing: 'abc' + '123abc ' ---
187int(123)
188--- testing: 'abc' + '3.4a' ---
189float(3.4)
190--- testing: 'abc' + 'a5.9' ---
191int(0)
192--- testing: '123abc' + '0' ---
193int(123)
194--- testing: '123abc' + '65' ---
195int(188)
196--- testing: '123abc' + '-44' ---
197int(79)
198--- testing: '123abc' + '1.2' ---
199float(124.2)
200--- testing: '123abc' + '-7.7' ---
201float(115.3)
202--- testing: '123abc' + 'abc' ---
203int(123)
204--- testing: '123abc' + '123abc' ---
205int(246)
206--- testing: '123abc' + '123e5' ---
207float(12300123)
208--- testing: '123abc' + '123e5xyz' ---
209float(12300123)
210--- testing: '123abc' + ' 123abc' ---
211int(246)
212--- testing: '123abc' + '123 abc' ---
213int(246)
214--- testing: '123abc' + '123abc ' ---
215int(246)
216--- testing: '123abc' + '3.4a' ---
217float(126.4)
218--- testing: '123abc' + 'a5.9' ---
219int(123)
220--- testing: '123e5' + '0' ---
221float(12300000)
222--- testing: '123e5' + '65' ---
223float(12300065)
224--- testing: '123e5' + '-44' ---
225float(12299956)
226--- testing: '123e5' + '1.2' ---
227float(12300001.2)
228--- testing: '123e5' + '-7.7' ---
229float(12299992.3)
230--- testing: '123e5' + 'abc' ---
231float(12300000)
232--- testing: '123e5' + '123abc' ---
233float(12300123)
234--- testing: '123e5' + '123e5' ---
235float(24600000)
236--- testing: '123e5' + '123e5xyz' ---
237float(24600000)
238--- testing: '123e5' + ' 123abc' ---
239float(12300123)
240--- testing: '123e5' + '123 abc' ---
241float(12300123)
242--- testing: '123e5' + '123abc ' ---
243float(12300123)
244--- testing: '123e5' + '3.4a' ---
245float(12300003.4)
246--- testing: '123e5' + 'a5.9' ---
247float(12300000)
248--- testing: '123e5xyz' + '0' ---
249float(12300000)
250--- testing: '123e5xyz' + '65' ---
251float(12300065)
252--- testing: '123e5xyz' + '-44' ---
253float(12299956)
254--- testing: '123e5xyz' + '1.2' ---
255float(12300001.2)
256--- testing: '123e5xyz' + '-7.7' ---
257float(12299992.3)
258--- testing: '123e5xyz' + 'abc' ---
259float(12300000)
260--- testing: '123e5xyz' + '123abc' ---
261float(12300123)
262--- testing: '123e5xyz' + '123e5' ---
263float(24600000)
264--- testing: '123e5xyz' + '123e5xyz' ---
265float(24600000)
266--- testing: '123e5xyz' + ' 123abc' ---
267float(12300123)
268--- testing: '123e5xyz' + '123 abc' ---
269float(12300123)
270--- testing: '123e5xyz' + '123abc ' ---
271float(12300123)
272--- testing: '123e5xyz' + '3.4a' ---
273float(12300003.4)
274--- testing: '123e5xyz' + 'a5.9' ---
275float(12300000)
276--- testing: ' 123abc' + '0' ---
277int(123)
278--- testing: ' 123abc' + '65' ---
279int(188)
280--- testing: ' 123abc' + '-44' ---
281int(79)
282--- testing: ' 123abc' + '1.2' ---
283float(124.2)
284--- testing: ' 123abc' + '-7.7' ---
285float(115.3)
286--- testing: ' 123abc' + 'abc' ---
287int(123)
288--- testing: ' 123abc' + '123abc' ---
289int(246)
290--- testing: ' 123abc' + '123e5' ---
291float(12300123)
292--- testing: ' 123abc' + '123e5xyz' ---
293float(12300123)
294--- testing: ' 123abc' + ' 123abc' ---
295int(246)
296--- testing: ' 123abc' + '123 abc' ---
297int(246)
298--- testing: ' 123abc' + '123abc ' ---
299int(246)
300--- testing: ' 123abc' + '3.4a' ---
301float(126.4)
302--- testing: ' 123abc' + 'a5.9' ---
303int(123)
304--- testing: '123 abc' + '0' ---
305int(123)
306--- testing: '123 abc' + '65' ---
307int(188)
308--- testing: '123 abc' + '-44' ---
309int(79)
310--- testing: '123 abc' + '1.2' ---
311float(124.2)
312--- testing: '123 abc' + '-7.7' ---
313float(115.3)
314--- testing: '123 abc' + 'abc' ---
315int(123)
316--- testing: '123 abc' + '123abc' ---
317int(246)
318--- testing: '123 abc' + '123e5' ---
319float(12300123)
320--- testing: '123 abc' + '123e5xyz' ---
321float(12300123)
322--- testing: '123 abc' + ' 123abc' ---
323int(246)
324--- testing: '123 abc' + '123 abc' ---
325int(246)
326--- testing: '123 abc' + '123abc ' ---
327int(246)
328--- testing: '123 abc' + '3.4a' ---
329float(126.4)
330--- testing: '123 abc' + 'a5.9' ---
331int(123)
332--- testing: '123abc ' + '0' ---
333int(123)
334--- testing: '123abc ' + '65' ---
335int(188)
336--- testing: '123abc ' + '-44' ---
337int(79)
338--- testing: '123abc ' + '1.2' ---
339float(124.2)
340--- testing: '123abc ' + '-7.7' ---
341float(115.3)
342--- testing: '123abc ' + 'abc' ---
343int(123)
344--- testing: '123abc ' + '123abc' ---
345int(246)
346--- testing: '123abc ' + '123e5' ---
347float(12300123)
348--- testing: '123abc ' + '123e5xyz' ---
349float(12300123)
350--- testing: '123abc ' + ' 123abc' ---
351int(246)
352--- testing: '123abc ' + '123 abc' ---
353int(246)
354--- testing: '123abc ' + '123abc ' ---
355int(246)
356--- testing: '123abc ' + '3.4a' ---
357float(126.4)
358--- testing: '123abc ' + 'a5.9' ---
359int(123)
360--- testing: '3.4a' + '0' ---
361float(3.4)
362--- testing: '3.4a' + '65' ---
363float(68.4)
364--- testing: '3.4a' + '-44' ---
365float(-40.6)
366--- testing: '3.4a' + '1.2' ---
367float(4.6)
368--- testing: '3.4a' + '-7.7' ---
369float(-4.3)
370--- testing: '3.4a' + 'abc' ---
371float(3.4)
372--- testing: '3.4a' + '123abc' ---
373float(126.4)
374--- testing: '3.4a' + '123e5' ---
375float(12300003.4)
376--- testing: '3.4a' + '123e5xyz' ---
377float(12300003.4)
378--- testing: '3.4a' + ' 123abc' ---
379float(126.4)
380--- testing: '3.4a' + '123 abc' ---
381float(126.4)
382--- testing: '3.4a' + '123abc ' ---
383float(126.4)
384--- testing: '3.4a' + '3.4a' ---
385float(6.8)
386--- testing: '3.4a' + 'a5.9' ---
387float(3.4)
388--- testing: 'a5.9' + '0' ---
389int(0)
390--- testing: 'a5.9' + '65' ---
391int(65)
392--- testing: 'a5.9' + '-44' ---
393int(-44)
394--- testing: 'a5.9' + '1.2' ---
395float(1.2)
396--- testing: 'a5.9' + '-7.7' ---
397float(-7.7)
398--- testing: 'a5.9' + 'abc' ---
399int(0)
400--- testing: 'a5.9' + '123abc' ---
401int(123)
402--- testing: 'a5.9' + '123e5' ---
403float(12300000)
404--- testing: 'a5.9' + '123e5xyz' ---
405float(12300000)
406--- testing: 'a5.9' + ' 123abc' ---
407int(123)
408--- testing: 'a5.9' + '123 abc' ---
409int(123)
410--- testing: 'a5.9' + '123abc ' ---
411int(123)
412--- testing: 'a5.9' + '3.4a' ---
413float(3.4)
414--- testing: 'a5.9' + 'a5.9' ---
415int(0)
416===DONE===
417