xref: /PHP-8.3/ext/standard/tests/strings/strcmp.phpt (revision 9a90bd70)
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--
116Deprecated: Using ${var} in strings is deprecated, use {$var} instead in %s on line %d
117#### Basic and Possible operations ####
118*** comparing the strings in an
119Array
120(
121    [0] => a
122    [1] => A
123    [2] => a
124    [3] => A
125    [4] => �
126    [5] => �
127    [6] => %0
128)
129
130Iteration 0
131- strcmp of 'a' and 'a' is => int(0)
132- strcmp of 'a' and 'A' is => int(%d)
133- strcmp of 'a' and 'a' is => int(0)
134- strcmp of 'a' and 'A' is => int(%d)
135- strcmp of 'a' and '�' is => int(-%d)
136- strcmp of 'a' and '�' is => int(-%d)
137- strcmp of 'a' and '%0' is => int(%d)
138
139Iteration 1
140- strcmp of 'A' and 'a' is => int(-%d)
141- strcmp of 'A' and 'A' is => int(0)
142- strcmp of 'A' and 'a' is => int(-%d)
143- strcmp of 'A' and 'A' is => int(0)
144- strcmp of 'A' and '�' is => int(-%d)
145- strcmp of 'A' and '�' is => int(-%d)
146- strcmp of 'A' and '%0' is => int(%d)
147
148Iteration 2
149- strcmp of 'a' and 'a' is => int(0)
150- strcmp of 'a' and 'A' is => int(%d)
151- strcmp of 'a' and 'a' is => int(0)
152- strcmp of 'a' and 'A' is => int(%d)
153- strcmp of 'a' and '�' is => int(-%d)
154- strcmp of 'a' and '�' is => int(-%d)
155- strcmp of 'a' and '%0' is => int(%d)
156
157Iteration 3
158- strcmp of 'A' and 'a' is => int(-%d)
159- strcmp of 'A' and 'A' is => int(0)
160- strcmp of 'A' and 'a' is => int(-%d)
161- strcmp of 'A' and 'A' is => int(0)
162- strcmp of 'A' and '�' is => int(-%d)
163- strcmp of 'A' and '�' is => int(-%d)
164- strcmp of 'A' and '%0' is => int(%d)
165
166Iteration 4
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 'A' is => int(%d)
171- strcmp of '�' and '�' is => int(0)
172- strcmp of '�' and '�' is => int(-%d)
173- strcmp of '�' and '%0' is => int(%d)
174
175Iteration 5
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 'A' is => int(%d)
180- strcmp of '�' and '�' is => int(%d)
181- strcmp of '�' and '�' is => int(0)
182- strcmp of '�' and '%0' is => int(%d)
183
184Iteration 6
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 'A' is => int(-%d)
189- strcmp of '%0' and '�' is => int(-%d)
190- strcmp of '%0' and '�' is => int(-%d)
191- strcmp of '%0' and '%0' is => int(0)
192
193*** comparing the strings in an
194Array
195(
196    [0] => acc
197    [1] => Acc
198    [2] => ac
199    [3] => accc
200    [4] => acd
201    [5] => ?acc
202    [6] => acc!
203    [7] => $!acc
204    [8] => ;acc
205)
206
207Iteration 0
208- strcmp of 'acc' and 'acc' is => int(0)
209- strcmp of 'acc' and 'Acc' is => int(%d)
210- strcmp of 'acc' and 'ac' is => int(%d)
211- strcmp of 'acc' and 'accc' is => int(-%d)
212- strcmp of 'acc' and 'acd' 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- strcmp of 'acc' and ';acc' is => int(%d)
217
218Iteration 1
219- strcmp of 'Acc' and 'acc' is => int(-%d)
220- strcmp of 'Acc' and 'Acc' is => int(0)
221- strcmp of 'Acc' and 'ac' is => int(-%d)
222- strcmp of 'Acc' and 'accc' is => int(-%d)
223- strcmp of 'Acc' and 'acd' 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- strcmp of 'Acc' and ';acc' is => int(%d)
228
229Iteration 2
230- strcmp of 'ac' and 'acc' is => int(-%d)
231- strcmp of 'ac' and 'Acc' is => int(%d)
232- strcmp of 'ac' and 'ac' is => int(0)
233- strcmp of 'ac' and 'accc' is => int(-%d)
234- strcmp of 'ac' and 'acd' 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- strcmp of 'ac' and ';acc' is => int(%d)
239
240Iteration 3
241- strcmp of 'accc' and 'acc' is => int(%d)
242- strcmp of 'accc' and 'Acc' is => int(%d)
243- strcmp of 'accc' and 'ac' is => int(%d)
244- strcmp of 'accc' and 'accc' is => int(0)
245- strcmp of 'accc' and 'acd' 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- strcmp of 'accc' and ';acc' is => int(%d)
250
251Iteration 4
252- strcmp of 'acd' and 'acc' is => int(%d)
253- strcmp of 'acd' and 'Acc' is => int(%d)
254- strcmp of 'acd' and 'ac' is => int(%d)
255- strcmp of 'acd' and 'accc' is => int(%d)
256- strcmp of 'acd' and 'acd' is => int(0)
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- strcmp of 'acd' and ';acc' is => int(%d)
261
262Iteration 5
263- strcmp of '?acc' and 'acc' is => int(-%d)
264- strcmp of '?acc' and 'Acc' is => int(-%d)
265- strcmp of '?acc' and 'ac' is => int(-%d)
266- strcmp of '?acc' and 'accc' is => int(-%d)
267- strcmp of '?acc' and 'acd' is => int(-%d)
268- strcmp of '?acc' and '?acc' is => int(0)
269- strcmp of '?acc' and 'acc!' is => int(-%d)
270- strcmp of '?acc' and '$!acc' is => int(%d)
271- strcmp of '?acc' and ';acc' is => int(%d)
272
273Iteration 6
274- strcmp of 'acc!' and 'acc' is => int(%d)
275- strcmp of 'acc!' and 'Acc' is => int(%d)
276- strcmp of 'acc!' and 'ac' is => int(%d)
277- strcmp of 'acc!' and 'accc' is => int(-%d)
278- strcmp of 'acc!' and 'acd' is => int(-%d)
279- strcmp of 'acc!' and '?acc' is => int(%d)
280- strcmp of 'acc!' and 'acc!' is => int(0)
281- strcmp of 'acc!' and '$!acc' is => int(%d)
282- strcmp of 'acc!' and ';acc' is => int(%d)
283
284Iteration 7
285- strcmp of '$!acc' and 'acc' is => int(-%d)
286- strcmp of '$!acc' and 'Acc' is => int(-%d)
287- strcmp of '$!acc' and 'ac' is => int(-%d)
288- strcmp of '$!acc' and 'accc' is => int(-%d)
289- strcmp of '$!acc' and 'acd' is => int(-%d)
290- strcmp of '$!acc' and '?acc' is => int(-%d)
291- strcmp of '$!acc' and 'acc!' is => int(-%d)
292- strcmp of '$!acc' and '$!acc' is => int(0)
293- strcmp of '$!acc' and ';acc' is => int(-%d)
294
295Iteration 8
296- strcmp of ';acc' and 'acc' is => int(-%d)
297- strcmp of ';acc' and 'Acc' is => int(-%d)
298- strcmp of ';acc' and 'ac' is => int(-%d)
299- strcmp of ';acc' and 'accc' is => int(-%d)
300- strcmp of ';acc' and 'acd' 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(%d)
304- strcmp of ';acc' and ';acc' is => int(0)
305
306*** comparing the strings in an
307Array
308(
309    [0] => 1
310    [1] => 0
311    [2] => 0
312    [3] => -1
313    [4] => -1
314    [5] =>
315    [6] => 1
316    [7] =>
317    [8] => string
318)
319
320Iteration 0
321- strcmp of '1' and '1' is => int(0)
322- strcmp of '1' and '0' is => int(%d)
323- strcmp of '1' and '0' is => int(%d)
324- strcmp of '1' and '-1' is => int(%d)
325- strcmp of '1' and '-1' is => int(%d)
326- strcmp of '1' and '' is => int(%d)
327- strcmp of '1' and '1' is => int(0)
328- strcmp of '1' and '' is => int(%d)
329- strcmp of '1' and 'string' is => int(-%d)
330
331Iteration 1
332- strcmp of '0' and '1' is => int(-%d)
333- strcmp of '0' and '0' is => int(0)
334- strcmp of '0' and '0' is => int(0)
335- strcmp of '0' and '-1' is => int(%d)
336- strcmp of '0' and '-1' is => int(%d)
337- strcmp of '0' and '' is => int(%d)
338- strcmp of '0' and '1' is => int(-%d)
339- strcmp of '0' and '' is => int(%d)
340- strcmp of '0' and 'string' is => int(-%d)
341
342Iteration 2
343- strcmp of '0' and '1' is => int(-%d)
344- strcmp of '0' and '0' is => int(0)
345- strcmp of '0' and '0' is => int(0)
346- strcmp of '0' and '-1' is => int(%d)
347- strcmp of '0' and '-1' is => int(%d)
348- strcmp of '0' and '' is => int(%d)
349- strcmp of '0' and '1' is => int(-%d)
350- strcmp of '0' and '' is => int(%d)
351- strcmp of '0' and 'string' is => int(-%d)
352
353Iteration 3
354- strcmp of '-1' and '1' is => int(-%d)
355- strcmp of '-1' and '0' is => int(-%d)
356- strcmp of '-1' and '0' is => int(-%d)
357- strcmp of '-1' and '-1' is => int(0)
358- strcmp of '-1' and '-1' is => int(0)
359- strcmp of '-1' and '' is => int(%d)
360- strcmp of '-1' and '1' is => int(-%d)
361- strcmp of '-1' and '' is => int(%d)
362- strcmp of '-1' and 'string' is => int(-%d)
363
364Iteration 4
365- strcmp of '-1' and '1' is => int(-%d)
366- strcmp of '-1' and '0' is => int(-%d)
367- strcmp of '-1' and '0' is => int(-%d)
368- strcmp of '-1' and '-1' is => int(0)
369- strcmp of '-1' and '-1' is => int(0)
370- strcmp of '-1' and '' is => int(%d)
371- strcmp of '-1' and '1' is => int(-%d)
372- strcmp of '-1' and '' is => int(%d)
373- strcmp of '-1' and 'string' is => int(-%d)
374
375Iteration 5
376- strcmp of '' and '1' is => int(-%d)
377- strcmp of '' and '0' is => int(-%d)
378- strcmp of '' and '0' is => int(-%d)
379- strcmp of '' and '-1' is => int(-%d)
380- strcmp of '' and '-1' is => int(-%d)
381- strcmp of '' and '' is => int(0)
382- strcmp of '' and '1' is => int(-%d)
383- strcmp of '' and '' is => int(0)
384- strcmp of '' and 'string' is => int(-%d)
385
386Iteration 6
387- strcmp of '1' and '1' is => int(0)
388- strcmp of '1' and '0' is => int(%d)
389- strcmp of '1' and '0' is => int(%d)
390- strcmp of '1' and '-1' is => int(%d)
391- strcmp of '1' and '-1' is => int(%d)
392- strcmp of '1' and '' is => int(%d)
393- strcmp of '1' and '1' is => int(0)
394- strcmp of '1' and '' is => int(%d)
395- strcmp of '1' and 'string' is => int(-%d)
396
397Iteration 7
398- strcmp of '' and '1' is => int(-%d)
399- strcmp of '' and '0' is => int(-%d)
400- strcmp of '' and '0' is => int(-%d)
401- strcmp of '' and '-1' is => int(-%d)
402- strcmp of '' and '-1' is => int(-%d)
403- strcmp of '' and '' is => int(0)
404- strcmp of '' and '1' is => int(-%d)
405- strcmp of '' and '' is => int(0)
406- strcmp of '' and 'string' is => int(-%d)
407
408Iteration 8
409- strcmp of 'string' and '1' is => int(%d)
410- strcmp of 'string' and '0' is => int(%d)
411- strcmp of 'string' and '0' is => int(%d)
412- strcmp of 'string' and '-1' is => int(%d)
413- strcmp of 'string' and '-1' is => int(%d)
414- strcmp of 'string' and '' is => int(%d)
415- strcmp of 'string' and '1' is => int(%d)
416- strcmp of 'string' and '' is => int(%d)
417- strcmp of 'string' and 'string' is => int(0)
418
419*** comparing the strings in an
420Array
421(
422    [0] => 10.5
423    [1] => 1.5
424    [2] => 9.5
425    [3] => 11.5
426    [4] => 100.5
427    [5] => 105
428    [6] => -10.5
429    [7] => 10
430    [8] => 0.5
431)
432
433Iteration 0
434- strcmp of '10.5' and '10.5' is => int(0)
435- strcmp of '10.5' and '1.5' is => int(%d)
436- strcmp of '10.5' and '9.5' is => int(-%d)
437- strcmp of '10.5' and '11.5' is => int(-%d)
438- strcmp of '10.5' and '100.5' is => int(-%d)
439- strcmp of '10.5' and '105' is => int(-%d)
440- strcmp of '10.5' and '-10.5' is => int(%d)
441- strcmp of '10.5' and '10' is => int(%d)
442- strcmp of '10.5' and '0.5' is => int(%d)
443
444Iteration 1
445- strcmp of '1.5' and '10.5' is => int(-%d)
446- strcmp of '1.5' and '1.5' is => int(0)
447- strcmp of '1.5' and '9.5' is => int(-%d)
448- strcmp of '1.5' and '11.5' is => int(-%d)
449- strcmp of '1.5' and '100.5' is => int(-%d)
450- strcmp of '1.5' and '105' is => int(-%d)
451- strcmp of '1.5' and '-10.5' is => int(%d)
452- strcmp of '1.5' and '10' is => int(-%d)
453- strcmp of '1.5' and '0.5' is => int(%d)
454
455Iteration 2
456- strcmp of '9.5' and '10.5' is => int(%d)
457- strcmp of '9.5' and '1.5' is => int(%d)
458- strcmp of '9.5' and '9.5' is => int(0)
459- strcmp of '9.5' and '11.5' is => int(%d)
460- strcmp of '9.5' and '100.5' is => int(%d)
461- strcmp of '9.5' and '105' is => int(%d)
462- strcmp of '9.5' and '-10.5' is => int(%d)
463- strcmp of '9.5' and '10' is => int(%d)
464- strcmp of '9.5' and '0.5' is => int(%d)
465
466Iteration 3
467- strcmp of '11.5' and '10.5' is => int(%d)
468- strcmp of '11.5' and '1.5' is => int(%d)
469- strcmp of '11.5' and '9.5' is => int(-%d)
470- strcmp of '11.5' and '11.5' is => int(0)
471- strcmp of '11.5' and '100.5' is => int(%d)
472- strcmp of '11.5' and '105' is => int(%d)
473- strcmp of '11.5' and '-10.5' is => int(%d)
474- strcmp of '11.5' and '10' is => int(%d)
475- strcmp of '11.5' and '0.5' is => int(%d)
476
477Iteration 4
478- strcmp of '100.5' and '10.5' is => int(%d)
479- strcmp of '100.5' and '1.5' is => int(%d)
480- strcmp of '100.5' and '9.5' is => int(-%d)
481- strcmp of '100.5' and '11.5' is => int(-%d)
482- strcmp of '100.5' and '100.5' is => int(0)
483- strcmp of '100.5' and '105' is => int(-%d)
484- strcmp of '100.5' and '-10.5' is => int(%d)
485- strcmp of '100.5' and '10' is => int(%d)
486- strcmp of '100.5' and '0.5' is => int(%d)
487
488Iteration 5
489- strcmp of '105' and '10.5' is => int(%d)
490- strcmp of '105' and '1.5' is => int(%d)
491- strcmp of '105' and '9.5' is => int(-%d)
492- strcmp of '105' and '11.5' is => int(-%d)
493- strcmp of '105' and '100.5' is => int(%d)
494- strcmp of '105' and '105' is => int(0)
495- strcmp of '105' and '-10.5' is => int(%d)
496- strcmp of '105' and '10' is => int(%d)
497- strcmp of '105' and '0.5' is => int(%d)
498
499Iteration 6
500- strcmp of '-10.5' and '10.5' is => int(-%d)
501- strcmp of '-10.5' and '1.5' is => int(-%d)
502- strcmp of '-10.5' and '9.5' is => int(-%d)
503- strcmp of '-10.5' and '11.5' is => int(-%d)
504- strcmp of '-10.5' and '100.5' is => int(-%d)
505- strcmp of '-10.5' and '105' is => int(-%d)
506- strcmp of '-10.5' and '-10.5' is => int(0)
507- strcmp of '-10.5' and '10' is => int(-%d)
508- strcmp of '-10.5' and '0.5' is => int(-%d)
509
510Iteration 7
511- strcmp of '10' and '10.5' is => int(-%d)
512- strcmp of '10' and '1.5' is => int(%d)
513- strcmp of '10' and '9.5' is => int(-%d)
514- strcmp of '10' and '11.5' is => int(-%d)
515- strcmp of '10' and '100.5' is => int(-%d)
516- strcmp of '10' and '105' is => int(-%d)
517- strcmp of '10' and '-10.5' is => int(%d)
518- strcmp of '10' and '10' is => int(0)
519- strcmp of '10' and '0.5' is => int(%d)
520
521Iteration 8
522- strcmp of '0.5' and '10.5' is => int(-%d)
523- strcmp of '0.5' and '1.5' is => int(-%d)
524- strcmp of '0.5' and '9.5' is => int(-%d)
525- strcmp of '0.5' and '11.5' is => int(-%d)
526- strcmp of '0.5' and '100.5' is => int(-%d)
527- strcmp of '0.5' and '105' is => int(-%d)
528- strcmp of '0.5' and '-10.5' is => int(%d)
529- strcmp of '0.5' and '10' is => int(-%d)
530- strcmp of '0.5' and '0.5' is => int(0)
531
532#### Testing miscellaneous inputs ####
533--- Testing objects ---
534int(-%d)
535
536--- Testing arrays ---
537int(%d)
538int(%d)
539
540--- Testing a longer and heredoc string ---
541int(0)
542int(-%d)
543int(%d)
544
545--- Testing a heredoc null string ---
546int(-%d)
547int(-%d)
548
549--- Testing simple and complex syntax strings ---
550int(-%d)
551int(-%d)
552
553Warning: Undefined variable $strS in %s on line %d
554int(%d)
555int(-%d)
556int(-%d)
557
558--- Testing binary safe and binary chars ---
559int(%d)
560int(-%d)
561int(0)
562int(0)
563int(%d)
564
565--- Comparing long float values ---
566int(0)
567int(-%d)
568int(0)
569Done
570