1--TEST--
2Test strncasecmp() function: usage variations - case-sensitivity
3--FILE--
4<?php
5/* Prototype  : int strncasecmp ( string $str1, string $str2, int $len );
6 * Description: Binary safe case-insensitive string comparison of the first n characters
7 * Source code: Zend/zend_builtin_functions.c
8*/
9
10/* Test strncasecmp() function with upper-case and lower-case alphabets as inputs for 'str1' and 'str2' */
11
12echo "*** Test strncasecmp() function: with alphabets ***\n";
13echo "-- Passing upper-case letters for 'str1' --\n";
14for($ASCII = 65; $ASCII <= 90; $ASCII++) {
15  var_dump( strncasecmp( chr($ASCII), chr($ASCII), 1 ) );  //comparing uppercase letter with corresponding uppercase letter; exp: int(0)
16  var_dump( strncasecmp( chr($ASCII), chr($ASCII + 32), 1 ) );  //comparing uppercase letter with corresponding lowercase letter; exp: int(0)
17}
18
19echo "\n-- Passing lower-case letters for 'str1' --\n";
20for($ASCII = 97; $ASCII <= 122; $ASCII++) {
21  var_dump( strncasecmp( chr($ASCII), chr($ASCII), 1 ) );  //comparing lowercase letter with corresponding lowercase letter; exp: int(0)
22  var_dump( strncasecmp( chr($ASCII), chr($ASCII - 32), 1 ) );  //comparing lowercase letter with corresponding uppercase letter; exp: int(0)
23}
24echo "*** Done ***\n";
25?>
26--EXPECTF--
27*** Test strncasecmp() function: with alphabets ***
28-- Passing upper-case letters for 'str1' --
29int(0)
30int(0)
31int(0)
32int(0)
33int(0)
34int(0)
35int(0)
36int(0)
37int(0)
38int(0)
39int(0)
40int(0)
41int(0)
42int(0)
43int(0)
44int(0)
45int(0)
46int(0)
47int(0)
48int(0)
49int(0)
50int(0)
51int(0)
52int(0)
53int(0)
54int(0)
55int(0)
56int(0)
57int(0)
58int(0)
59int(0)
60int(0)
61int(0)
62int(0)
63int(0)
64int(0)
65int(0)
66int(0)
67int(0)
68int(0)
69int(0)
70int(0)
71int(0)
72int(0)
73int(0)
74int(0)
75int(0)
76int(0)
77int(0)
78int(0)
79int(0)
80int(0)
81
82-- Passing lower-case letters for 'str1' --
83int(0)
84int(0)
85int(0)
86int(0)
87int(0)
88int(0)
89int(0)
90int(0)
91int(0)
92int(0)
93int(0)
94int(0)
95int(0)
96int(0)
97int(0)
98int(0)
99int(0)
100int(0)
101int(0)
102int(0)
103int(0)
104int(0)
105int(0)
106int(0)
107int(0)
108int(0)
109int(0)
110int(0)
111int(0)
112int(0)
113int(0)
114int(0)
115int(0)
116int(0)
117int(0)
118int(0)
119int(0)
120int(0)
121int(0)
122int(0)
123int(0)
124int(0)
125int(0)
126int(0)
127int(0)
128int(0)
129int(0)
130int(0)
131int(0)
132int(0)
133int(0)
134int(0)
135*** Done ***
136