1--TEST-- 2Test vprintf() function : usage variations - float formats with non-float values 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 float formats and non-float values are passed to 12 * the '$format' and '$args' arguments of the function 13*/ 14 15echo "*** Testing vprintf() : float formats and non-float values ***\n"; 16 17// defining array of float formats 18$formats = 19 '%f %+f %-f 20 %lf %Lf %4f %-4f 21 %10.4f %-10.4f %04f %04.4f 22 %\'#2f %\'2f %\'$2f %\'_2f 23 %3$f %4$f %1$f %2$f'; 24 25// Arrays of non float values for the format defined in $format. 26// Each sub array contains non float values which correspond to each format in $format 27$args_array = array( 28 29 // array of int values 30 array(2, -2, +2, 31 123456, 123456234, -12346789, +12346789, 32 123200, +20000, -40000, 22212, 33 12345780, 1211111, -12111111, -12345634, 34 3, +4, 1,-2 ), 35 36 // array of strings 37 array(" ", ' ', 'hello', 38 '123hello', "123hello", '-123hello', '+123hello', 39 "\12345678hello", "-\12345678hello", '0123456hello', 'h123456ello', 40 "1234hello", "hello\0world", "NULL", "true", 41 "3", "4", '1', '2'), 42 43 // different arrays 44 array( array(0), array(1, 2), array(-1, -1), 45 array("123"), array('123'), array('-123'), array("-123"), 46 array(true), array(false), array(TRUE), array(FALSE), 47 array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"), 48 array("3"), array("4"), array("1"), array("2") ), 49 50 // array of boolean data 51 array( true, TRUE, false, 52 TRUE, 0, FALSE, 1, 53 true, false, TRUE, FALSE, 54 0, 1, 1, 0, 55 1, TRUE, 0, FALSE), 56 57); 58 59// looping to test vprintf() with different float formats from the above $format array 60// and with non-float values from the above $args_array array 61$counter = 1; 62foreach($args_array as $args) { 63 echo "\n-- Iteration $counter --\n"; 64 $result = vprintf($formats, $args); 65 echo "\n"; 66 var_dump($result); 67 $counter++; 68} 69 70?> 71===DONE=== 72--EXPECT-- 73*** Testing vprintf() : float formats and non-float values *** 74 75-- Iteration 1 -- 762.000000 -2.000000 2.000000 77 123456.000000 f -12346789.000000 12346789.000000 78 123200.0000 20000.0000 -40000.000000 22212.0000 79 12345780.000000 1211111.000000 -12111111.000000 -12345634.000000 80 2.000000 123456.000000 2.000000 -2.000000 81int(244) 82 83-- Iteration 2 -- 840.000000 +0.000000 0.000000 85 123.000000 f -123.000000 123.000000 86 0.0000 0.0000 123456.000000 0.0000 87 1234.000000 0.000000 0.000000 0.000000 88 0.000000 123.000000 0.000000 0.000000 89int(196) 90 91-- Iteration 3 -- 921.000000 +1.000000 1.000000 93 1.000000 f 1.000000 1.000000 94 1.0000 1.0000 1.000000 1.0000 95 1.000000 1.000000 1.000000 1.000000 96 1.000000 1.000000 1.000000 1.000000 97int(179) 98 99-- Iteration 4 -- 1001.000000 +1.000000 0.000000 101 1.000000 f 0.000000 1.000000 102 1.0000 0.0000 1.000000 0.0000 103 0.000000 1.000000 1.000000 0.000000 104 0.000000 1.000000 1.000000 1.000000 105int(179) 106===DONE=== 107