![]() ![]() | ![]() |
1.1 misho 1: --TEST--
2: Test array_pad() function : usage variations - different arrays for 'input' argument
3: --FILE--
4: <?php
5: /* Prototype : array array_pad(array $input, int $pad_size, mixed $pad_value)
6: * Description: Returns a copy of input array padded with pad_value to size pad_size
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * Passing different arrays to $input argument and testing whether
12: * array_pad() behaves in an expected way with the other arguments passed to the function.
13: * The $pad_size and $pad_value arguments passed are fixed values.
14: */
15:
16: echo "*** Testing array_pad() : Passing different arrays to \$input argument ***\n";
17:
18: /* Different heredoc strings */
19:
20: // heredoc with blank line
21: $blank_line = <<<EOT
22:
23:
24: EOT;
25:
26: // heredoc with multiline string
27: $multiline_string = <<<EOT
28: hello world
29: The big brown fox jumped over;
30: the lazy dog
31: This is a double quoted string
32: EOT;
33:
1.1.1.2 ! misho 34: // heredoc with different whitespaces
1.1 misho 35: $diff_whitespaces = <<<EOT
36: hello\r world\t
37: 1111\t\t != 2222\v\v
38: heredoc\ndouble quoted string. with\vdifferent\fwhite\vspaces
39: EOT;
40:
41: // heredoc with quoted strings and numeric values
42: $numeric_string = <<<EOT
43: 11 < 12. 123 >22
44: 'single quoted string'
45: "double quoted string"
46: 2222 != 1111.\t 0000 = 0000\n
47: EOT;
48:
49: // different arrays to be passed to $input argument
50: $inputs = array (
51: /*1*/ array(1, 2), // with default keys and numeric values
52: array(1.1, 2.2), // with default keys & float values
53: array(false,true), // with default keys and boolean values
54: array(), // empty array
55: /*5*/ array(NULL), // with NULL
56: array("a\v\f", "aaaa\r", "b\tbbb", "\[\]\!\@\#\$\%\^\&\*\(\)\{\}"), // with double quoted strings
57: array('a\v\f', 'aaaa\r', 'b\tbbb', '\[\]\!\@\#\$\%\^\&\*\(\)\{\}'), // with single quoted strings
58: array("h1" => $blank_line, "h2" => $multiline_string, "h3" => $diff_whitespaces, $numeric_string), // with heredocs
59:
60: // associative arrays
61: /*9*/ array(1 => "one", 2 => "two", 3 => "three"), // explicit numeric keys, string values
62: array("one" => 1, "two" => 2, "three" => 3 ), // string keys & numeric values
63: array( 1 => 10, 2 => 20, 4 => 40, 3 => 30), // explicit numeric keys and numeric values
64: array( "one" => "ten", "two" => "twenty", "three" => "thirty"), // string key/value
65: array("one" => 1, 2 => "two", 4 => "four"), //mixed
66:
67: // associative array, containing null/empty/boolean values as key/value
68: /*14*/ array(NULL => "NULL", null => "null", "NULL" => NULL, "null" => null),
69: array(true => "true", false => "false", "false" => false, "true" => true),
70: array("" => "emptyd", '' => 'emptys', "emptyd" => "", 'emptys' => ''),
71: array(1 => '', 2 => "", 3 => NULL, 4 => null, 5 => false, 6 => true),
72: array('' => 1, "" => 2, NULL => 3, null => 4, false => 5, true => 6),
73:
74: // array with repetative keys
75: /*19*/ array("One" => 1, "two" => 2, "One" => 10, "two" => 20, "three" => 3)
76: );
77:
78: // initialize the $pad_size and $pad_value arguments
79: $pad_size = 6;
80: $pad_value = "HELLO";
81:
82: // loop through each sub-array within $inputs to check the behavior of array_pad()
83: $iterator = 1;
84: foreach($inputs as $input) {
85: echo "-- Iteration $iterator --\n";
86: var_dump( array_pad($input, $pad_size, $pad_value) ); // positive 'pad_size'
87: var_dump( array_pad($input, -$pad_size, $pad_value) ); // negative 'pad_size'
88: $iterator++;
89: };
90:
91: echo "Done";
92: ?>
93: --EXPECTF--
94: *** Testing array_pad() : Passing different arrays to $input argument ***
95: -- Iteration 1 --
96: array(6) {
97: [0]=>
98: int(1)
99: [1]=>
100: int(2)
101: [2]=>
102: string(5) "HELLO"
103: [3]=>
104: string(5) "HELLO"
105: [4]=>
106: string(5) "HELLO"
107: [5]=>
108: string(5) "HELLO"
109: }
110: array(6) {
111: [0]=>
112: string(5) "HELLO"
113: [1]=>
114: string(5) "HELLO"
115: [2]=>
116: string(5) "HELLO"
117: [3]=>
118: string(5) "HELLO"
119: [4]=>
120: int(1)
121: [5]=>
122: int(2)
123: }
124: -- Iteration 2 --
125: array(6) {
126: [0]=>
127: float(1.1)
128: [1]=>
129: float(2.2)
130: [2]=>
131: string(5) "HELLO"
132: [3]=>
133: string(5) "HELLO"
134: [4]=>
135: string(5) "HELLO"
136: [5]=>
137: string(5) "HELLO"
138: }
139: array(6) {
140: [0]=>
141: string(5) "HELLO"
142: [1]=>
143: string(5) "HELLO"
144: [2]=>
145: string(5) "HELLO"
146: [3]=>
147: string(5) "HELLO"
148: [4]=>
149: float(1.1)
150: [5]=>
151: float(2.2)
152: }
153: -- Iteration 3 --
154: array(6) {
155: [0]=>
156: bool(false)
157: [1]=>
158: bool(true)
159: [2]=>
160: string(5) "HELLO"
161: [3]=>
162: string(5) "HELLO"
163: [4]=>
164: string(5) "HELLO"
165: [5]=>
166: string(5) "HELLO"
167: }
168: array(6) {
169: [0]=>
170: string(5) "HELLO"
171: [1]=>
172: string(5) "HELLO"
173: [2]=>
174: string(5) "HELLO"
175: [3]=>
176: string(5) "HELLO"
177: [4]=>
178: bool(false)
179: [5]=>
180: bool(true)
181: }
182: -- Iteration 4 --
183: array(6) {
184: [0]=>
185: string(5) "HELLO"
186: [1]=>
187: string(5) "HELLO"
188: [2]=>
189: string(5) "HELLO"
190: [3]=>
191: string(5) "HELLO"
192: [4]=>
193: string(5) "HELLO"
194: [5]=>
195: string(5) "HELLO"
196: }
197: array(6) {
198: [0]=>
199: string(5) "HELLO"
200: [1]=>
201: string(5) "HELLO"
202: [2]=>
203: string(5) "HELLO"
204: [3]=>
205: string(5) "HELLO"
206: [4]=>
207: string(5) "HELLO"
208: [5]=>
209: string(5) "HELLO"
210: }
211: -- Iteration 5 --
212: array(6) {
213: [0]=>
214: NULL
215: [1]=>
216: string(5) "HELLO"
217: [2]=>
218: string(5) "HELLO"
219: [3]=>
220: string(5) "HELLO"
221: [4]=>
222: string(5) "HELLO"
223: [5]=>
224: string(5) "HELLO"
225: }
226: array(6) {
227: [0]=>
228: string(5) "HELLO"
229: [1]=>
230: string(5) "HELLO"
231: [2]=>
232: string(5) "HELLO"
233: [3]=>
234: string(5) "HELLO"
235: [4]=>
236: string(5) "HELLO"
237: [5]=>
238: NULL
239: }
240: -- Iteration 6 --
241: array(6) {
242: [0]=>
243: string(3) "a"
244: [1]=>
245: string(5) "aaaa
"
246: [2]=>
247: string(5) "b bbb"
248: [3]=>
249: string(27) "\[\]\!\@\#$\%\^\&\*\(\)\{\}"
250: [4]=>
251: string(5) "HELLO"
252: [5]=>
253: string(5) "HELLO"
254: }
255: array(6) {
256: [0]=>
257: string(5) "HELLO"
258: [1]=>
259: string(5) "HELLO"
260: [2]=>
261: string(3) "a"
262: [3]=>
263: string(5) "aaaa
"
264: [4]=>
265: string(5) "b bbb"
266: [5]=>
267: string(27) "\[\]\!\@\#$\%\^\&\*\(\)\{\}"
268: }
269: -- Iteration 7 --
270: array(6) {
271: [0]=>
272: string(5) "a\v\f"
273: [1]=>
274: string(6) "aaaa\r"
275: [2]=>
276: string(6) "b\tbbb"
277: [3]=>
278: string(28) "\[\]\!\@\#\$\%\^\&\*\(\)\{\}"
279: [4]=>
280: string(5) "HELLO"
281: [5]=>
282: string(5) "HELLO"
283: }
284: array(6) {
285: [0]=>
286: string(5) "HELLO"
287: [1]=>
288: string(5) "HELLO"
289: [2]=>
290: string(5) "a\v\f"
291: [3]=>
292: string(6) "aaaa\r"
293: [4]=>
294: string(6) "b\tbbb"
295: [5]=>
296: string(28) "\[\]\!\@\#\$\%\^\&\*\(\)\{\}"
297: }
298: -- Iteration 8 --
299: array(6) {
300: ["h1"]=>
301: string(1) "
302: "
303: ["h2"]=>
304: string(86) "hello world
305: The big brown fox jumped over;
306: the lazy dog
307: This is a double quoted string"
308: ["h3"]=>
309: string(88) "hello
world
310: 1111 != 2222
311: heredoc
312: double quoted string. withdifferentwhitespaces"
313: [0]=>
314: string(90) "11 < 12. 123 >22
315: 'single quoted string'
316: "double quoted string"
317: 2222 != 1111. 0000 = 0000
318: "
319: [1]=>
320: string(5) "HELLO"
321: [2]=>
322: string(5) "HELLO"
323: }
324: array(6) {
325: [0]=>
326: string(5) "HELLO"
327: [1]=>
328: string(5) "HELLO"
329: ["h1"]=>
330: string(1) "
331: "
332: ["h2"]=>
333: string(86) "hello world
334: The big brown fox jumped over;
335: the lazy dog
336: This is a double quoted string"
337: ["h3"]=>
338: string(88) "hello
world
339: 1111 != 2222
340: heredoc
341: double quoted string. withdifferentwhitespaces"
342: [2]=>
343: string(90) "11 < 12. 123 >22
344: 'single quoted string'
345: "double quoted string"
346: 2222 != 1111. 0000 = 0000
347: "
348: }
349: -- Iteration 9 --
350: array(6) {
351: [0]=>
352: string(3) "one"
353: [1]=>
354: string(3) "two"
355: [2]=>
356: string(5) "three"
357: [3]=>
358: string(5) "HELLO"
359: [4]=>
360: string(5) "HELLO"
361: [5]=>
362: string(5) "HELLO"
363: }
364: array(6) {
365: [0]=>
366: string(5) "HELLO"
367: [1]=>
368: string(5) "HELLO"
369: [2]=>
370: string(5) "HELLO"
371: [3]=>
372: string(3) "one"
373: [4]=>
374: string(3) "two"
375: [5]=>
376: string(5) "three"
377: }
378: -- Iteration 10 --
379: array(6) {
380: ["one"]=>
381: int(1)
382: ["two"]=>
383: int(2)
384: ["three"]=>
385: int(3)
386: [0]=>
387: string(5) "HELLO"
388: [1]=>
389: string(5) "HELLO"
390: [2]=>
391: string(5) "HELLO"
392: }
393: array(6) {
394: [0]=>
395: string(5) "HELLO"
396: [1]=>
397: string(5) "HELLO"
398: [2]=>
399: string(5) "HELLO"
400: ["one"]=>
401: int(1)
402: ["two"]=>
403: int(2)
404: ["three"]=>
405: int(3)
406: }
407: -- Iteration 11 --
408: array(6) {
409: [0]=>
410: int(10)
411: [1]=>
412: int(20)
413: [2]=>
414: int(40)
415: [3]=>
416: int(30)
417: [4]=>
418: string(5) "HELLO"
419: [5]=>
420: string(5) "HELLO"
421: }
422: array(6) {
423: [0]=>
424: string(5) "HELLO"
425: [1]=>
426: string(5) "HELLO"
427: [2]=>
428: int(10)
429: [3]=>
430: int(20)
431: [4]=>
432: int(40)
433: [5]=>
434: int(30)
435: }
436: -- Iteration 12 --
437: array(6) {
438: ["one"]=>
439: string(3) "ten"
440: ["two"]=>
441: string(6) "twenty"
442: ["three"]=>
443: string(6) "thirty"
444: [0]=>
445: string(5) "HELLO"
446: [1]=>
447: string(5) "HELLO"
448: [2]=>
449: string(5) "HELLO"
450: }
451: array(6) {
452: [0]=>
453: string(5) "HELLO"
454: [1]=>
455: string(5) "HELLO"
456: [2]=>
457: string(5) "HELLO"
458: ["one"]=>
459: string(3) "ten"
460: ["two"]=>
461: string(6) "twenty"
462: ["three"]=>
463: string(6) "thirty"
464: }
465: -- Iteration 13 --
466: array(6) {
467: ["one"]=>
468: int(1)
469: [0]=>
470: string(3) "two"
471: [1]=>
472: string(4) "four"
473: [2]=>
474: string(5) "HELLO"
475: [3]=>
476: string(5) "HELLO"
477: [4]=>
478: string(5) "HELLO"
479: }
480: array(6) {
481: [0]=>
482: string(5) "HELLO"
483: [1]=>
484: string(5) "HELLO"
485: [2]=>
486: string(5) "HELLO"
487: ["one"]=>
488: int(1)
489: [3]=>
490: string(3) "two"
491: [4]=>
492: string(4) "four"
493: }
494: -- Iteration 14 --
495: array(6) {
496: [""]=>
497: string(4) "null"
498: ["NULL"]=>
499: NULL
500: ["null"]=>
501: NULL
502: [0]=>
503: string(5) "HELLO"
504: [1]=>
505: string(5) "HELLO"
506: [2]=>
507: string(5) "HELLO"
508: }
509: array(6) {
510: [0]=>
511: string(5) "HELLO"
512: [1]=>
513: string(5) "HELLO"
514: [2]=>
515: string(5) "HELLO"
516: [""]=>
517: string(4) "null"
518: ["NULL"]=>
519: NULL
520: ["null"]=>
521: NULL
522: }
523: -- Iteration 15 --
524: array(6) {
525: [0]=>
526: string(4) "true"
527: [1]=>
528: string(5) "false"
529: ["false"]=>
530: bool(false)
531: ["true"]=>
532: bool(true)
533: [2]=>
534: string(5) "HELLO"
535: [3]=>
536: string(5) "HELLO"
537: }
538: array(6) {
539: [0]=>
540: string(5) "HELLO"
541: [1]=>
542: string(5) "HELLO"
543: [2]=>
544: string(4) "true"
545: [3]=>
546: string(5) "false"
547: ["false"]=>
548: bool(false)
549: ["true"]=>
550: bool(true)
551: }
552: -- Iteration 16 --
553: array(6) {
554: [""]=>
555: string(6) "emptys"
556: ["emptyd"]=>
557: string(0) ""
558: ["emptys"]=>
559: string(0) ""
560: [0]=>
561: string(5) "HELLO"
562: [1]=>
563: string(5) "HELLO"
564: [2]=>
565: string(5) "HELLO"
566: }
567: array(6) {
568: [0]=>
569: string(5) "HELLO"
570: [1]=>
571: string(5) "HELLO"
572: [2]=>
573: string(5) "HELLO"
574: [""]=>
575: string(6) "emptys"
576: ["emptyd"]=>
577: string(0) ""
578: ["emptys"]=>
579: string(0) ""
580: }
581: -- Iteration 17 --
582: array(6) {
583: [1]=>
584: string(0) ""
585: [2]=>
586: string(0) ""
587: [3]=>
588: NULL
589: [4]=>
590: NULL
591: [5]=>
592: bool(false)
593: [6]=>
594: bool(true)
595: }
596: array(6) {
597: [1]=>
598: string(0) ""
599: [2]=>
600: string(0) ""
601: [3]=>
602: NULL
603: [4]=>
604: NULL
605: [5]=>
606: bool(false)
607: [6]=>
608: bool(true)
609: }
610: -- Iteration 18 --
611: array(6) {
612: [""]=>
613: int(4)
614: [0]=>
615: int(5)
616: [1]=>
617: int(6)
618: [2]=>
619: string(5) "HELLO"
620: [3]=>
621: string(5) "HELLO"
622: [4]=>
623: string(5) "HELLO"
624: }
625: array(6) {
626: [0]=>
627: string(5) "HELLO"
628: [1]=>
629: string(5) "HELLO"
630: [2]=>
631: string(5) "HELLO"
632: [""]=>
633: int(4)
634: [3]=>
635: int(5)
636: [4]=>
637: int(6)
638: }
639: -- Iteration 19 --
640: array(6) {
641: ["One"]=>
642: int(10)
643: ["two"]=>
644: int(20)
645: ["three"]=>
646: int(3)
647: [0]=>
648: string(5) "HELLO"
649: [1]=>
650: string(5) "HELLO"
651: [2]=>
652: string(5) "HELLO"
653: }
654: array(6) {
655: [0]=>
656: string(5) "HELLO"
657: [1]=>
658: string(5) "HELLO"
659: [2]=>
660: string(5) "HELLO"
661: ["One"]=>
662: int(10)
663: ["two"]=>
664: int(20)
665: ["three"]=>
666: int(3)
667: }
668: Done