Annotation of embedaddon/php/ext/standard/tests/strings/vprintf_variation7.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test vprintf() function : usage variations - string formats with strings
3: --FILE--
4: <?php
5: /* Prototype : string vprintf(string format, array args)
6: * Description: Output a formatted string
7: * Source code: ext/standard/formatted_print.c
8: */
9:
10: /*
11: * Test vprintf() when different string formats and string values are passed to
12: * the '$format' and '$args' arguments of the function
13: */
14:
15: echo "*** Testing vprintf() : string formats with strings ***\n";
16:
17:
18: // defining different heredoc strings
19: $heredoc_string = <<<EOT
20: This is string defined
21: using heredoc.
22: EOT;
23:
24: /* heredoc string with only numerics */
25: $heredoc_numeric_string = <<<EOT
26: 123456 3993
27: 4849 string
28: EOT;
29:
30: /* empty heardoc string */
31: $heredoc_empty_string = <<<EOT
32: EOT;
33:
34: // defining array of string formats
35: $formats = array(
36: "%s",
37: "%+s %-s %S",
38: "%ls %Ls, %4s %-4s",
39: "%10.4s %-10.4s %04s %04.4s",
40: "%'#2s %'2s %'$2s %'_2s",
41: "%% %%s %10 s%",
42: '%3$s %4$s %1$s %2$s'
43: );
44:
45: // Arrays of string values for the format defined in $format.
46: // Each sub array contains string values which correspond to each format string in $format
47: $args_array = array(
48: array(" "),
49: array("hello\0world", "hello\0", "\0hello"),
50: array("@#$%&*", "@#$%&*", "\x55F", "\001"),
51: array("sunday", 'monday', "tuesday", 'wednesday'),
52: array($heredoc_string, "abcdef", $heredoc_numeric_string, $heredoc_empty_string),
53: array("one", "two", 'three', 'four'),
54: array("three", 'four', 'one', "two")
55:
56: );
57:
58: // looping to test vprintf() with different string formats from the above $format array
59: // and with string from the above $args_array array
60: $counter = 1;
61: foreach($formats as $format) {
62: echo "\n-- Iteration $counter --\n";
63: $result = vprintf($format, $args_array[$counter-1]);
64: echo "\n";
65: var_dump($result);
66: $counter++;
67: }
68:
69: ?>
70: ===DONE===
71: --EXPECT--
72: *** Testing vprintf() : string formats with strings ***
73:
74: -- Iteration 1 --
75:
76: int(1)
77:
78: -- Iteration 2 --
79: hello world hello
80: int(19)
81:
82: -- Iteration 3 --
83: @#$%&* s, UF &
84: int(19)
85:
86: -- Iteration 4 --
87: sund mond tuesday wedn
88: int(34)
89:
90: -- Iteration 5 --
91: This is string defined
92: using heredoc. abcdef 123456 3993
93: 4849 string __
94: int(71)
95:
96: -- Iteration 6 --
97: % %s s
98: int(6)
99:
100: -- Iteration 7 --
101: one two three four
102: int(18)
103: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>