xref: /PHP-8.1/ext/standard/tests/strings/strcmp.phpt (revision ea256a21)
1--TEST--
2strcmp() function
3--INI--
4precision = 12
5--FILE--
6<?php
7/* Compares two strings in case-sensitive manner */
8
9echo "#### Basic and Possible operations ####";
10/* creating an array of strings to be compared */
11$arrays = array(
12           array("a", "A", 'a', 'A', chr(128), chr(255), chr(256)),
13           array("acc", "Acc", 'ac', "accc", 'acd', "?acc", 'acc!', "$!acc", ";acc"),
14           array("1", "0", 0, "-1", -1, "", TRUE, FALSE, "string"),
15           array(10.5, 1.5, 9.5, 11.5, 100.5, 10.5E1, -10.5, 10, 0.5)
16          );
17
18/* loop through to go each and every element in an array
19    and comparing the elements with one and other */
20foreach($arrays as $str1_arr){
21  echo "\n*** comparing the strings in an \n";
22  print_r($str1_arr);
23  for ($i=0; $i<count($str1_arr); $i++){
24    echo "\nIteration $i\n";
25    for($j=0; $j<count($str1_arr); $j++){
26      echo "- strcmp of '$str1_arr[$i]' and '$str1_arr[$j]' is => ";
27      var_dump(strcmp($str1_arr[$i], $str1_arr[$j]));
28    }
29  }
30}
31
32
33
34echo "\n#### Testing miscellaneous inputs ####\n";
35
36echo "--- Testing objects ---\n";
37/* we get "Recoverable fatal error: saying Object of class could not be converted
38   to string" by default, when an object is passed instead of string.
39The error can be  avoided by choosing the __toString magix method as follows: */
40
41class string1 {
42  function __toString() {
43    return "Hello, world";
44  }
45}
46$obj_string1 = new string1;
47
48class string2 {
49  function __toString() {
50    return "Hello, world\0";
51  }
52}
53$obj_string2 = new string2;
54
55var_dump(strcmp("$obj_string1", "$obj_string2"));
56
57
58echo "\n--- Testing arrays ---\n";
59$str_arr = array("hello", "?world", "!$%**()%**[][[[&@#~!");
60var_dump(strcmp("hello?world,!$%**()%**[][[[&@#~!", "$str_arr[1]"));
61var_dump(strcmp("hello?world,!$%**()%**[][[[&@#~!", "$str_arr[2]"));
62
63
64echo "\n--- Testing a longer and heredoc string ---\n";
65$string = <<<EOD
66abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
67abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
68abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
69abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
70abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
71abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
72abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
73@#$%^&**&^%$#@!~:())))((((&&&**%$###@@@!!!~~~~@###$%^&*
74abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
75EOD;
76var_dump(strcmp($string, $string));
77var_dump(strcmp($string, "xyz0123456789"));
78var_dump(strcmp($string, "&&&"));
79
80echo "\n--- Testing a heredoc null string ---\n";
81$str = <<<EOD
82EOD;
83var_dump(strcmp($str, "\0"));
84var_dump(strcmp($str, "0"));
85
86
87echo "\n--- Testing simple and complex syntax strings ---\n";
88$str = 'world';
89
90/* Simple syntax */
91var_dump(strcmp("Hello, world", "$str"));
92var_dump(strcmp("Hello, world'S", "$str'S"));
93var_dump(strcmp("Hello, worldS", "$strS"));
94
95/* String with curly braces, complex syntax */
96var_dump(strcmp("Hello, worldS", "${str}S"));
97var_dump(strcmp("Hello, worldS", "{$str}S"));
98
99echo "\n--- Testing binary safe and binary chars ---\n";
100var_dump(strcmp("Hello\0world", "Hello"));
101var_dump(strcmp("Hello\0world", "Helloworld"));
102var_dump(strcmp("\x0", "\0"));
103var_dump(strcmp("\000", "\0"));
104var_dump(strcmp("\x00", ""));
105
106echo "\n--- Comparing long float values ---\n";
107/* Here two different outputs, which depends on the rounding value
108   before converting to string. Here Precision = 12  */
109var_dump(strcmp(10.55555555555555555555555555, 10.5555555556));   // int(0)
110var_dump(strcmp(10.55555555555555555555555555, 10.555555556));    // int(-1)
111var_dump(strcmp(10.55555555595555555555555555, 10.555555556));    // int(0)
112
113echo "Done\n";
114?>
115--EXPECTF--
116#### Basic and Possible operations ####
117*** comparing the strings in an
118Array
119(
120    [0] => a
121    [1] => A
122    [2] => a
123    [3] => A
124    [4] => �
125    [5] => �
126    [6] => %0
127)
128
129Iteration 0
130- strcmp of 'a' and 'a' is => int(0)
131- strcmp of 'a' and 'A' is => int(%d)
132- strcmp of 'a' and 'a' is => int(0)
133- strcmp of 'a' and 'A' is => int(%d)
134- strcmp of 'a' and '�' is => int(-%d)
135- strcmp of 'a' and '�' is => int(-%d)
136- strcmp of 'a' and '%0' is => int(%d)
137
138Iteration 1
139- strcmp of 'A' and 'a' is => int(-%d)
140- strcmp of 'A' and 'A' is => int(0)
141- strcmp of 'A' and 'a' is => int(-%d)
142- strcmp of 'A' and 'A' is => int(0)
143- strcmp of 'A' and '�' is => int(-%d)
144- strcmp of 'A' and '�' is => int(-%d)
145- strcmp of 'A' and '%0' is => int(%d)
146
147Iteration 2
148- strcmp of 'a' and 'a' is => int(0)
149- strcmp of 'a' and 'A' is => int(%d)
150- strcmp of 'a' and 'a' is => int(0)
151- strcmp of 'a' and 'A' is => int(%d)
152- strcmp of 'a' and '�' is => int(-%d)
153- strcmp of 'a' and '�' is => int(-%d)
154- strcmp of 'a' and '%0' is => int(%d)
155
156Iteration 3
157- strcmp of 'A' and 'a' is => int(-%d)
158- strcmp of 'A' and 'A' is => int(0)
159- strcmp of 'A' and 'a' is => int(-%d)
160- strcmp of 'A' and 'A' is => int(0)
161- strcmp of 'A' and '�' is => int(-%d)
162- strcmp of 'A' and '�' is => int(-%d)
163- strcmp of 'A' and '%0' is => int(%d)
164
165Iteration 4
166- strcmp of '�' and 'a' is => int(%d)
167- strcmp of '�' and 'A' is => int(%d)
168- strcmp of '�' and 'a' is => int(%d)
169- strcmp of '�' and 'A' is => int(%d)
170- strcmp of '�' and '�' is => int(0)
171- strcmp of '�' and '�' is => int(-%d)
172- strcmp of '�' and '%0' is => int(%d)
173
174Iteration 5
175- strcmp of '�' and 'a' is => int(%d)
176- strcmp of '�' and 'A' is => int(%d)
177- strcmp of '�' and 'a' is => int(%d)
178- strcmp of '�' and 'A' is => int(%d)
179- strcmp of '�' and '�' is => int(%d)
180- strcmp of '�' and '�' is => int(0)
181- strcmp of '�' and '%0' is => int(%d)
182
183Iteration 6
184- strcmp of '%0' and 'a' is => int(-%d)
185- strcmp of '%0' and 'A' is => int(-%d)
186- strcmp of '%0' and 'a' is => int(-%d)
187- strcmp of '%0' and 'A' is => int(-%d)
188- strcmp of '%0' and '�' is => int(-%d)
189- strcmp of '%0' and '�' is => int(-%d)
190- strcmp of '%0' and '%0' is => int(0)
191
192*** comparing the strings in an
193Array
194(
195    [0] => acc
196    [1] => Acc
197    [2] => ac
198    [3] => accc
199    [4] => acd
200    [5] => ?acc
201    [6] => acc!
202    [7] => $!acc
203    [8] => ;acc
204)
205
206Iteration 0
207- strcmp of 'acc' and 'acc' is => int(0)
208- strcmp of 'acc' and 'Acc' is => int(%d)
209- strcmp of 'acc' and 'ac' is => int(%d)
210- strcmp of 'acc' and 'accc' is => int(-%d)
211- strcmp of 'acc' and 'acd' is => int(-%d)
212- strcmp of 'acc' and '?acc' is => int(%d)
213- strcmp of 'acc' and 'acc!' is => int(-%d)
214- strcmp of 'acc' and '$!acc' is => int(%d)
215- strcmp of 'acc' and ';acc' is => int(%d)
216
217Iteration 1
218- strcmp of 'Acc' and 'acc' is => int(-%d)
219- strcmp of 'Acc' and 'Acc' is => int(0)
220- strcmp of 'Acc' and 'ac' is => int(-%d)
221- strcmp of 'Acc' and 'accc' is => int(-%d)
222- strcmp of 'Acc' and 'acd' is => int(-%d)
223- strcmp of 'Acc' and '?acc' is => int(%d)
224- strcmp of 'Acc' and 'acc!' is => int(-%d)
225- strcmp of 'Acc' and '$!acc' is => int(%d)
226- strcmp of 'Acc' and ';acc' is => int(%d)
227
228Iteration 2
229- strcmp of 'ac' and 'acc' is => int(-%d)
230- strcmp of 'ac' and 'Acc' is => int(%d)
231- strcmp of 'ac' and 'ac' is => int(0)
232- strcmp of 'ac' and 'accc' is => int(-%d)
233- strcmp of 'ac' and 'acd' is => int(-%d)
234- strcmp of 'ac' and '?acc' is => int(%d)
235- strcmp of 'ac' and 'acc!' is => int(-%d)
236- strcmp of 'ac' and '$!acc' is => int(%d)
237- strcmp of 'ac' and ';acc' is => int(%d)
238
239Iteration 3
240- strcmp of 'accc' and 'acc' is => int(%d)
241- strcmp of 'accc' and 'Acc' is => int(%d)
242- strcmp of 'accc' and 'ac' is => int(%d)
243- strcmp of 'accc' and 'accc' is => int(0)
244- strcmp of 'accc' and 'acd' is => int(-%d)
245- strcmp of 'accc' and '?acc' is => int(%d)
246- strcmp of 'accc' and 'acc!' is => int(%d)
247- strcmp of 'accc' and '$!acc' is => int(%d)
248- strcmp of 'accc' and ';acc' is => int(%d)
249
250Iteration 4
251- strcmp of 'acd' and 'acc' is => int(%d)
252- strcmp of 'acd' and 'Acc' is => int(%d)
253- strcmp of 'acd' and 'ac' is => int(%d)
254- strcmp of 'acd' and 'accc' is => int(%d)
255- strcmp of 'acd' and 'acd' is => int(0)
256- strcmp of 'acd' and '?acc' is => int(%d)
257- strcmp of 'acd' and 'acc!' is => int(%d)
258- strcmp of 'acd' and '$!acc' is => int(%d)
259- strcmp of 'acd' and ';acc' is => int(%d)
260
261Iteration 5
262- strcmp of '?acc' and 'acc' is => int(-%d)
263- strcmp of '?acc' and 'Acc' is => int(-%d)
264- strcmp of '?acc' and 'ac' is => int(-%d)
265- strcmp of '?acc' and 'accc' is => int(-%d)
266- strcmp of '?acc' and 'acd' is => int(-%d)
267- strcmp of '?acc' and '?acc' is => int(0)
268- strcmp of '?acc' and 'acc!' is => int(-%d)
269- strcmp of '?acc' and '$!acc' is => int(%d)
270- strcmp of '?acc' and ';acc' is => int(%d)
271
272Iteration 6
273- strcmp of 'acc!' and 'acc' is => int(%d)
274- strcmp of 'acc!' and 'Acc' is => int(%d)
275- strcmp of 'acc!' and 'ac' is => int(%d)
276- strcmp of 'acc!' and 'accc' is => int(-%d)
277- strcmp of 'acc!' and 'acd' is => int(-%d)
278- strcmp of 'acc!' and '?acc' is => int(%d)
279- strcmp of 'acc!' and 'acc!' is => int(0)
280- strcmp of 'acc!' and '$!acc' is => int(%d)
281- strcmp of 'acc!' and ';acc' is => int(%d)
282
283Iteration 7
284- strcmp of '$!acc' and 'acc' is => int(-%d)
285- strcmp of '$!acc' and 'Acc' is => int(-%d)
286- strcmp of '$!acc' and 'ac' is => int(-%d)
287- strcmp of '$!acc' and 'accc' is => int(-%d)
288- strcmp of '$!acc' and 'acd' is => int(-%d)
289- strcmp of '$!acc' and '?acc' is => int(-%d)
290- strcmp of '$!acc' and 'acc!' is => int(-%d)
291- strcmp of '$!acc' and '$!acc' is => int(0)
292- strcmp of '$!acc' and ';acc' is => int(-%d)
293
294Iteration 8
295- strcmp of ';acc' and 'acc' is => int(-%d)
296- strcmp of ';acc' and 'Acc' is => int(-%d)
297- strcmp of ';acc' and 'ac' is => int(-%d)
298- strcmp of ';acc' and 'accc' is => int(-%d)
299- strcmp of ';acc' and 'acd' is => int(-%d)
300- strcmp of ';acc' and '?acc' is => int(-%d)
301- strcmp of ';acc' and 'acc!' is => int(-%d)
302- strcmp of ';acc' and '$!acc' is => int(%d)
303- strcmp of ';acc' and ';acc' is => int(0)
304
305*** comparing the strings in an
306Array
307(
308    [0] => 1
309    [1] => 0
310    [2] => 0
311    [3] => -1
312    [4] => -1
313    [5] =>
314    [6] => 1
315    [7] =>
316    [8] => string
317)
318
319Iteration 0
320- strcmp of '1' and '1' is => int(0)
321- strcmp of '1' and '0' is => int(%d)
322- strcmp of '1' and '0' is => int(%d)
323- strcmp of '1' and '-1' is => int(%d)
324- strcmp of '1' and '-1' is => int(%d)
325- strcmp of '1' and '' is => int(%d)
326- strcmp of '1' and '1' is => int(0)
327- strcmp of '1' and '' is => int(%d)
328- strcmp of '1' and 'string' is => int(-%d)
329
330Iteration 1
331- strcmp of '0' and '1' is => int(-%d)
332- strcmp of '0' and '0' is => int(0)
333- strcmp of '0' and '0' is => int(0)
334- strcmp of '0' and '-1' is => int(%d)
335- strcmp of '0' and '-1' is => int(%d)
336- strcmp of '0' and '' is => int(%d)
337- strcmp of '0' and '1' is => int(-%d)
338- strcmp of '0' and '' is => int(%d)
339- strcmp of '0' and 'string' is => int(-%d)
340
341Iteration 2
342- strcmp of '0' and '1' is => int(-%d)
343- strcmp of '0' and '0' is => int(0)
344- strcmp of '0' and '0' is => int(0)
345- strcmp of '0' and '-1' is => int(%d)
346- strcmp of '0' and '-1' is => int(%d)
347- strcmp of '0' and '' is => int(%d)
348- strcmp of '0' and '1' is => int(-%d)
349- strcmp of '0' and '' is => int(%d)
350- strcmp of '0' and 'string' is => int(-%d)
351
352Iteration 3
353- strcmp of '-1' and '1' is => int(-%d)
354- strcmp of '-1' and '0' is => int(-%d)
355- strcmp of '-1' and '0' is => int(-%d)
356- strcmp of '-1' and '-1' is => int(0)
357- strcmp of '-1' and '-1' is => int(0)
358- strcmp of '-1' and '' is => int(%d)
359- strcmp of '-1' and '1' is => int(-%d)
360- strcmp of '-1' and '' is => int(%d)
361- strcmp of '-1' and 'string' is => int(-%d)
362
363Iteration 4
364- strcmp of '-1' and '1' is => int(-%d)
365- strcmp of '-1' and '0' is => int(-%d)
366- strcmp of '-1' and '0' is => int(-%d)
367- strcmp of '-1' and '-1' is => int(0)
368- strcmp of '-1' and '-1' is => int(0)
369- strcmp of '-1' and '' is => int(%d)
370- strcmp of '-1' and '1' is => int(-%d)
371- strcmp of '-1' and '' is => int(%d)
372- strcmp of '-1' and 'string' is => int(-%d)
373
374Iteration 5
375- strcmp of '' and '1' is => int(-%d)
376- strcmp of '' and '0' is => int(-%d)
377- strcmp of '' and '0' is => int(-%d)
378- strcmp of '' and '-1' is => int(-%d)
379- strcmp of '' and '-1' is => int(-%d)
380- strcmp of '' and '' is => int(0)
381- strcmp of '' and '1' is => int(-%d)
382- strcmp of '' and '' is => int(0)
383- strcmp of '' and 'string' is => int(-%d)
384
385Iteration 6
386- strcmp of '1' and '1' is => int(0)
387- strcmp of '1' and '0' is => int(%d)
388- strcmp of '1' and '0' is => int(%d)
389- strcmp of '1' and '-1' is => int(%d)
390- strcmp of '1' and '-1' is => int(%d)
391- strcmp of '1' and '' is => int(%d)
392- strcmp of '1' and '1' is => int(0)
393- strcmp of '1' and '' is => int(%d)
394- strcmp of '1' and 'string' is => int(-%d)
395
396Iteration 7
397- strcmp of '' and '1' is => int(-%d)
398- strcmp of '' and '0' is => int(-%d)
399- strcmp of '' and '0' is => int(-%d)
400- strcmp of '' and '-1' is => int(-%d)
401- strcmp of '' and '-1' is => int(-%d)
402- strcmp of '' and '' is => int(0)
403- strcmp of '' and '1' is => int(-%d)
404- strcmp of '' and '' is => int(0)
405- strcmp of '' and 'string' is => int(-%d)
406
407Iteration 8
408- strcmp of 'string' and '1' is => int(%d)
409- strcmp of 'string' and '0' is => int(%d)
410- strcmp of 'string' and '0' is => int(%d)
411- strcmp of 'string' and '-1' is => int(%d)
412- strcmp of 'string' and '-1' is => int(%d)
413- strcmp of 'string' and '' is => int(%d)
414- strcmp of 'string' and '1' is => int(%d)
415- strcmp of 'string' and '' is => int(%d)
416- strcmp of 'string' and 'string' is => int(0)
417
418*** comparing the strings in an
419Array
420(
421    [0] => 10.5
422    [1] => 1.5
423    [2] => 9.5
424    [3] => 11.5
425    [4] => 100.5
426    [5] => 105
427    [6] => -10.5
428    [7] => 10
429    [8] => 0.5
430)
431
432Iteration 0
433- strcmp of '10.5' and '10.5' is => int(0)
434- strcmp of '10.5' and '1.5' is => int(%d)
435- strcmp of '10.5' and '9.5' is => int(-%d)
436- strcmp of '10.5' and '11.5' is => int(-%d)
437- strcmp of '10.5' and '100.5' is => int(-%d)
438- strcmp of '10.5' and '105' is => int(-%d)
439- strcmp of '10.5' and '-10.5' is => int(%d)
440- strcmp of '10.5' and '10' is => int(%d)
441- strcmp of '10.5' and '0.5' is => int(%d)
442
443Iteration 1
444- strcmp of '1.5' and '10.5' is => int(-%d)
445- strcmp of '1.5' and '1.5' is => int(0)
446- strcmp of '1.5' and '9.5' is => int(-%d)
447- strcmp of '1.5' and '11.5' is => int(-%d)
448- strcmp of '1.5' and '100.5' is => int(-%d)
449- strcmp of '1.5' and '105' is => int(-%d)
450- strcmp of '1.5' and '-10.5' is => int(%d)
451- strcmp of '1.5' and '10' is => int(-%d)
452- strcmp of '1.5' and '0.5' is => int(%d)
453
454Iteration 2
455- strcmp of '9.5' and '10.5' is => int(%d)
456- strcmp of '9.5' and '1.5' is => int(%d)
457- strcmp of '9.5' and '9.5' is => int(0)
458- strcmp of '9.5' and '11.5' is => int(%d)
459- strcmp of '9.5' and '100.5' is => int(%d)
460- strcmp of '9.5' and '105' is => int(%d)
461- strcmp of '9.5' and '-10.5' is => int(%d)
462- strcmp of '9.5' and '10' is => int(%d)
463- strcmp of '9.5' and '0.5' is => int(%d)
464
465Iteration 3
466- strcmp of '11.5' and '10.5' is => int(%d)
467- strcmp of '11.5' and '1.5' is => int(%d)
468- strcmp of '11.5' and '9.5' is => int(-%d)
469- strcmp of '11.5' and '11.5' is => int(0)
470- strcmp of '11.5' and '100.5' is => int(%d)
471- strcmp of '11.5' and '105' is => int(%d)
472- strcmp of '11.5' and '-10.5' is => int(%d)
473- strcmp of '11.5' and '10' is => int(%d)
474- strcmp of '11.5' and '0.5' is => int(%d)
475
476Iteration 4
477- strcmp of '100.5' and '10.5' is => int(%d)
478- strcmp of '100.5' and '1.5' is => int(%d)
479- strcmp of '100.5' and '9.5' is => int(-%d)
480- strcmp of '100.5' and '11.5' is => int(-%d)
481- strcmp of '100.5' and '100.5' is => int(0)
482- strcmp of '100.5' and '105' is => int(-%d)
483- strcmp of '100.5' and '-10.5' is => int(%d)
484- strcmp of '100.5' and '10' is => int(%d)
485- strcmp of '100.5' and '0.5' is => int(%d)
486
487Iteration 5
488- strcmp of '105' and '10.5' is => int(%d)
489- strcmp of '105' and '1.5' is => int(%d)
490- strcmp of '105' and '9.5' is => int(-%d)
491- strcmp of '105' and '11.5' is => int(-%d)
492- strcmp of '105' and '100.5' is => int(%d)
493- strcmp of '105' and '105' is => int(0)
494- strcmp of '105' and '-10.5' is => int(%d)
495- strcmp of '105' and '10' is => int(%d)
496- strcmp of '105' and '0.5' is => int(%d)
497
498Iteration 6
499- strcmp of '-10.5' and '10.5' is => int(-%d)
500- strcmp of '-10.5' and '1.5' is => int(-%d)
501- strcmp of '-10.5' and '9.5' is => int(-%d)
502- strcmp of '-10.5' and '11.5' is => int(-%d)
503- strcmp of '-10.5' and '100.5' is => int(-%d)
504- strcmp of '-10.5' and '105' is => int(-%d)
505- strcmp of '-10.5' and '-10.5' is => int(0)
506- strcmp of '-10.5' and '10' is => int(-%d)
507- strcmp of '-10.5' and '0.5' is => int(-%d)
508
509Iteration 7
510- strcmp of '10' and '10.5' is => int(-%d)
511- strcmp of '10' and '1.5' is => int(%d)
512- strcmp of '10' and '9.5' is => int(-%d)
513- strcmp of '10' and '11.5' is => int(-%d)
514- strcmp of '10' and '100.5' is => int(-%d)
515- strcmp of '10' and '105' is => int(-%d)
516- strcmp of '10' and '-10.5' is => int(%d)
517- strcmp of '10' and '10' is => int(0)
518- strcmp of '10' and '0.5' is => int(%d)
519
520Iteration 8
521- strcmp of '0.5' and '10.5' is => int(-%d)
522- strcmp of '0.5' and '1.5' is => int(-%d)
523- strcmp of '0.5' and '9.5' is => int(-%d)
524- strcmp of '0.5' and '11.5' is => int(-%d)
525- strcmp of '0.5' and '100.5' is => int(-%d)
526- strcmp of '0.5' and '105' is => int(-%d)
527- strcmp of '0.5' and '-10.5' is => int(%d)
528- strcmp of '0.5' and '10' is => int(-%d)
529- strcmp of '0.5' and '0.5' is => int(0)
530
531#### Testing miscellaneous inputs ####
532--- Testing objects ---
533int(-%d)
534
535--- Testing arrays ---
536int(%d)
537int(%d)
538
539--- Testing a longer and heredoc string ---
540int(0)
541int(-%d)
542int(%d)
543
544--- Testing a heredoc null string ---
545int(-%d)
546int(-%d)
547
548--- Testing simple and complex syntax strings ---
549int(-%d)
550int(-%d)
551
552Warning: Undefined variable $strS in %s on line %d
553int(%d)
554int(-%d)
555int(-%d)
556
557--- Testing binary safe and binary chars ---
558int(%d)
559int(-%d)
560int(0)
561int(0)
562int(%d)
563
564--- Comparing long float values ---
565int(0)
566int(-%d)
567int(0)
568Done
569