Return to vprintf_variation7.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / strings |
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===