]> granicus.if.org Git - php/blob
07774a92ec
[php] /
1 --TEST--
2 Test sprintf() function : usage variations - string formats with string values
3 --FILE--
4 <?php
5 /* Prototype  : string sprintf(string $format [, mixed $arg1 [, mixed ...]])
6  * Description: Return a formatted string
7  * Source code: ext/standard/formatted_print.c
8 */
9
10
11 echo "*** Testing sprintf() : string formats with string values ***\n";
12
13 // defining different heredoc strings
14 /* string created using Heredoc (<<<) */
15 $heredoc_string = <<<EOT
16 This is string defined
17 using heredoc.
18 EOT;
19
20 /* heredoc string with only numerics */
21 $heredoc_numeric_string = <<<EOT
22 123456 3993
23 4849 string
24 EOT;
25
26 /* null heardoc string */
27 $heredoc_empty_string = <<<EOT
28 EOT;
29 $heredoc_null_string = <<<EOT
30 NULL
31 EOT;
32
33 // array of strings used to test the function
34 $string_values = array(
35   "",
36   " ",
37   '',
38   ' ',
39   "string",
40   'string',
41   "NULL",
42   'null',
43   "FALSE",
44   'true',
45   "\x0b",
46   "\0",
47   '\0',
48   '\060',
49   "\070",
50   "0x55F",
51   "055",
52   "@#$#$%%$^^$%^%^$^&",
53   $heredoc_string,
54   $heredoc_numeric_string,
55   $heredoc_empty_string,
56   $heredoc_null_string
57 );
58
59 // array of string formats
60 $string_formats = array(
61   "%s", "%ls", " %s", "%s ",
62   "\t%s", "\n%s", "%4s", "%30s",
63 );
64
65 $count = 1;
66 foreach($string_values as $string_value) {
67   echo "\n-- Iteration $count --\n";
68
69   foreach($string_formats as $format) {
70     var_dump( sprintf($format, $string_value) );
71   }
72   $count++;
73 };
74
75 echo "Done";
76 ?>
77 --EXPECTF--
78 *** Testing sprintf() : string formats with string values ***
79
80 -- Iteration 1 --
81 string(0) ""
82 string(0) ""
83 string(1) " "
84 string(1) " "
85 string(1) "     "
86 string(1) "
87 "
88 string(4) "    "
89 string(30) "                              "
90
91 -- Iteration 2 --
92 string(1) " "
93 string(1) " "
94 string(2) "  "
95 string(2) "  "
96 string(2) "      "
97 string(2) "
98  "
99 string(4) "    "
100 string(30) "                              "
101
102 -- Iteration 3 --
103 string(0) ""
104 string(0) ""
105 string(1) " "
106 string(1) " "
107 string(1) "     "
108 string(1) "
109 "
110 string(4) "    "
111 string(30) "                              "
112
113 -- Iteration 4 --
114 string(1) " "
115 string(1) " "
116 string(2) "  "
117 string(2) "  "
118 string(2) "      "
119 string(2) "
120  "
121 string(4) "    "
122 string(30) "                              "
123
124 -- Iteration 5 --
125 string(6) "string"
126 string(6) "string"
127 string(7) " string"
128 string(7) "string "
129 string(7) "     string"
130 string(7) "
131 string"
132 string(6) "string"
133 string(30) "                        string"
134
135 -- Iteration 6 --
136 string(6) "string"
137 string(6) "string"
138 string(7) " string"
139 string(7) "string "
140 string(7) "     string"
141 string(7) "
142 string"
143 string(6) "string"
144 string(30) "                        string"
145
146 -- Iteration 7 --
147 string(4) "NULL"
148 string(4) "NULL"
149 string(5) " NULL"
150 string(5) "NULL "
151 string(5) "     NULL"
152 string(5) "
153 NULL"
154 string(4) "NULL"
155 string(30) "                          NULL"
156
157 -- Iteration 8 --
158 string(4) "null"
159 string(4) "null"
160 string(5) " null"
161 string(5) "null "
162 string(5) "     null"
163 string(5) "
164 null"
165 string(4) "null"
166 string(30) "                          null"
167
168 -- Iteration 9 --
169 string(5) "FALSE"
170 string(5) "FALSE"
171 string(6) " FALSE"
172 string(6) "FALSE "
173 string(6) "     FALSE"
174 string(6) "
175 FALSE"
176 string(5) "FALSE"
177 string(30) "                         FALSE"
178
179 -- Iteration 10 --
180 string(4) "true"
181 string(4) "true"
182 string(5) " true"
183 string(5) "true "
184 string(5) "     true"
185 string(5) "
186 true"
187 string(4) "true"
188 string(30) "                          true"
189
190 -- Iteration 11 --
191 string(1) "\v"
192 string(1) "\v"
193 string(2) " \v"
194 string(2) "\v "
195 string(2) "     \v"
196 string(2) "
197 \v"
198 string(4) "   \v"
199 string(30) "                             \v"
200
201 -- Iteration 12 --
202 string(1) "\0"
203 string(1) "\0"
204 string(2) " \0"
205 string(2) "\0 "
206 string(2) "     \0"
207 string(2) "
208 \0"
209 string(4) "   \0"
210 string(30) "                             \0"
211
212 -- Iteration 13 --
213 string(2) "\0"
214 string(2) "\0"
215 string(3) " \0"
216 string(3) "\0 "
217 string(3) "     \0"
218 string(3) "
219 \0"
220 string(4) "  \0"
221 string(30) "                            \0"
222
223 -- Iteration 14 --
224 string(4) "\060"
225 string(4) "\060"
226 string(5) " \060"
227 string(5) "\060 "
228 string(5) "     \060"
229 string(5) "
230 \060"
231 string(4) "\060"
232 string(30) "                          \060"
233
234 -- Iteration 15 --
235 string(1) "8"
236 string(1) "8"
237 string(2) " 8"
238 string(2) "8 "
239 string(2) "     8"
240 string(2) "
241 8"
242 string(4) "   8"
243 string(30) "                             8"
244
245 -- Iteration 16 --
246 string(5) "0x55F"
247 string(5) "0x55F"
248 string(6) " 0x55F"
249 string(6) "0x55F "
250 string(6) "     0x55F"
251 string(6) "
252 0x55F"
253 string(5) "0x55F"
254 string(30) "                         0x55F"
255
256 -- Iteration 17 --
257 string(3) "055"
258 string(3) "055"
259 string(4) " 055"
260 string(4) "055 "
261 string(4) "     055"
262 string(4) "
263 055"
264 string(4) " 055"
265 string(30) "                           055"
266
267 -- Iteration 18 --
268 string(18) "@#$#$%%$^^$%^%^$^&"
269 string(18) "@#$#$%%$^^$%^%^$^&"
270 string(19) " @#$#$%%$^^$%^%^$^&"
271 string(19) "@#$#$%%$^^$%^%^$^& "
272 string(19) "    @#$#$%%$^^$%^%^$^&"
273 string(19) "
274 @#$#$%%$^^$%^%^$^&"
275 string(18) "@#$#$%%$^^$%^%^$^&"
276 string(30) "            @#$#$%%$^^$%^%^$^&"
277
278 -- Iteration 19 --
279 string(37) "This is string defined
280 using heredoc."
281 string(37) "This is string defined
282 using heredoc."
283 string(38) " This is string defined
284 using heredoc."
285 string(38) "This is string defined
286 using heredoc. "
287 string(38) "    This is string defined
288 using heredoc."
289 string(38) "
290 This is string defined
291 using heredoc."
292 string(37) "This is string defined
293 using heredoc."
294 string(37) "This is string defined
295 using heredoc."
296
297 -- Iteration 20 --
298 string(23) "123456 3993
299 4849 string"
300 string(23) "123456 3993
301 4849 string"
302 string(24) " 123456 3993
303 4849 string"
304 string(24) "123456 3993
305 4849 string "
306 string(24) "    123456 3993
307 4849 string"
308 string(24) "
309 123456 3993
310 4849 string"
311 string(23) "123456 3993
312 4849 string"
313 string(30) "       123456 3993
314 4849 string"
315
316 -- Iteration 21 --
317 string(0) ""
318 string(0) ""
319 string(1) " "
320 string(1) " "
321 string(1) "     "
322 string(1) "
323 "
324 string(4) "    "
325 string(30) "                              "
326
327 -- Iteration 22 --
328 string(4) "NULL"
329 string(4) "NULL"
330 string(5) " NULL"
331 string(5) "NULL "
332 string(5) "     NULL"
333 string(5) "
334 NULL"
335 string(4) "NULL"
336 string(30) "                          NULL"
337 Done