1--TEST-- 2Test sprintf() function : usage variations - hexa formats with integer values 3--SKIPIF-- 4<?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); ?> 5--FILE-- 6<?php 7/* Prototype : string sprintf(string $format [, mixed $arg1 [, mixed ...]]) 8 * Description: Return a formatted string 9 * Source code: ext/standard/formatted_print.c 10*/ 11 12echo "*** Testing sprintf() : hexa formats with integer values ***\n"; 13 14// array of integer values 15$integer_values = array( 16 0, 17 1, 18 -1, 19 -2147483648, // max negative integer value 20 -2147483647, 21 2147483647, // max positive integer value 22 2147483640, 23 0x123B, // integer as hexadecimal 24 0x12ab, 25 0Xfff, 26 0XFA, 27 -0x80000000, // max negative integer as hexadecimal 28 0x7fffffff, // max postive integer as hexadecimal 29 0x7FFFFFFF, // max postive integer as hexadecimal 30 0123, // integer as octal 31 01912, // should be quivalent to octal 1 32 -020000000000, // max negative integer as octal 33 017777777777 // max positive integer as octal 34); 35 36// array of hexa formats 37$hexa_formats = array( 38 "%x", "%xx", "%lx", 39 "%Lx", " %x", "%x ", 40 "\t%x", "\n%x", "%4x", 41 "%30x", "%[0-9A-Fa-f]", "%*x" 42); 43 44$count = 1; 45foreach($integer_values as $integer_value) { 46 echo "\n-- Iteration $count --\n"; 47 48 foreach($hexa_formats as $format) { 49 var_dump( sprintf($format, $integer_value) ); 50 } 51 $count++; 52}; 53 54echo "Done"; 55?> 56--EXPECTF-- 57*** Testing sprintf() : hexa formats with integer values *** 58 59-- Iteration 1 -- 60string(1) "0" 61string(2) "0x" 62string(1) "0" 63string(1) "x" 64string(2) " 0" 65string(2) "0 " 66string(2) " 0" 67string(2) " 680" 69string(4) " 0" 70string(30) " 0" 71string(10) "0-9A-Fa-f]" 72string(1) "x" 73 74-- Iteration 2 -- 75string(1) "1" 76string(2) "1x" 77string(1) "1" 78string(1) "x" 79string(2) " 1" 80string(2) "1 " 81string(2) " 1" 82string(2) " 831" 84string(4) " 1" 85string(30) " 1" 86string(10) "0-9A-Fa-f]" 87string(1) "x" 88 89-- Iteration 3 -- 90string(16) "ffffffffffffffff" 91string(17) "ffffffffffffffffx" 92string(16) "ffffffffffffffff" 93string(1) "x" 94string(17) " ffffffffffffffff" 95string(17) "ffffffffffffffff " 96string(17) " ffffffffffffffff" 97string(17) " 98ffffffffffffffff" 99string(16) "ffffffffffffffff" 100string(30) " ffffffffffffffff" 101string(10) "0-9A-Fa-f]" 102string(1) "x" 103 104-- Iteration 4 -- 105string(16) "ffffffff80000000" 106string(17) "ffffffff80000000x" 107string(16) "ffffffff80000000" 108string(1) "x" 109string(17) " ffffffff80000000" 110string(17) "ffffffff80000000 " 111string(17) " ffffffff80000000" 112string(17) " 113ffffffff80000000" 114string(16) "ffffffff80000000" 115string(30) " ffffffff80000000" 116string(10) "0-9A-Fa-f]" 117string(1) "x" 118 119-- Iteration 5 -- 120string(16) "ffffffff80000001" 121string(17) "ffffffff80000001x" 122string(16) "ffffffff80000001" 123string(1) "x" 124string(17) " ffffffff80000001" 125string(17) "ffffffff80000001 " 126string(17) " ffffffff80000001" 127string(17) " 128ffffffff80000001" 129string(16) "ffffffff80000001" 130string(30) " ffffffff80000001" 131string(10) "0-9A-Fa-f]" 132string(1) "x" 133 134-- Iteration 6 -- 135string(8) "7fffffff" 136string(9) "7fffffffx" 137string(8) "7fffffff" 138string(1) "x" 139string(9) " 7fffffff" 140string(9) "7fffffff " 141string(9) " 7fffffff" 142string(9) " 1437fffffff" 144string(8) "7fffffff" 145string(30) " 7fffffff" 146string(10) "0-9A-Fa-f]" 147string(1) "x" 148 149-- Iteration 7 -- 150string(8) "7ffffff8" 151string(9) "7ffffff8x" 152string(8) "7ffffff8" 153string(1) "x" 154string(9) " 7ffffff8" 155string(9) "7ffffff8 " 156string(9) " 7ffffff8" 157string(9) " 1587ffffff8" 159string(8) "7ffffff8" 160string(30) " 7ffffff8" 161string(10) "0-9A-Fa-f]" 162string(1) "x" 163 164-- Iteration 8 -- 165string(4) "123b" 166string(5) "123bx" 167string(4) "123b" 168string(1) "x" 169string(5) " 123b" 170string(5) "123b " 171string(5) " 123b" 172string(5) " 173123b" 174string(4) "123b" 175string(30) " 123b" 176string(10) "0-9A-Fa-f]" 177string(1) "x" 178 179-- Iteration 9 -- 180string(4) "12ab" 181string(5) "12abx" 182string(4) "12ab" 183string(1) "x" 184string(5) " 12ab" 185string(5) "12ab " 186string(5) " 12ab" 187string(5) " 18812ab" 189string(4) "12ab" 190string(30) " 12ab" 191string(10) "0-9A-Fa-f]" 192string(1) "x" 193 194-- Iteration 10 -- 195string(3) "fff" 196string(4) "fffx" 197string(3) "fff" 198string(1) "x" 199string(4) " fff" 200string(4) "fff " 201string(4) " fff" 202string(4) " 203fff" 204string(4) " fff" 205string(30) " fff" 206string(10) "0-9A-Fa-f]" 207string(1) "x" 208 209-- Iteration 11 -- 210string(2) "fa" 211string(3) "fax" 212string(2) "fa" 213string(1) "x" 214string(3) " fa" 215string(3) "fa " 216string(3) " fa" 217string(3) " 218fa" 219string(4) " fa" 220string(30) " fa" 221string(10) "0-9A-Fa-f]" 222string(1) "x" 223 224-- Iteration 12 -- 225string(16) "ffffffff80000000" 226string(17) "ffffffff80000000x" 227string(16) "ffffffff80000000" 228string(1) "x" 229string(17) " ffffffff80000000" 230string(17) "ffffffff80000000 " 231string(17) " ffffffff80000000" 232string(17) " 233ffffffff80000000" 234string(16) "ffffffff80000000" 235string(30) " ffffffff80000000" 236string(10) "0-9A-Fa-f]" 237string(1) "x" 238 239-- Iteration 13 -- 240string(8) "7fffffff" 241string(9) "7fffffffx" 242string(8) "7fffffff" 243string(1) "x" 244string(9) " 7fffffff" 245string(9) "7fffffff " 246string(9) " 7fffffff" 247string(9) " 2487fffffff" 249string(8) "7fffffff" 250string(30) " 7fffffff" 251string(10) "0-9A-Fa-f]" 252string(1) "x" 253 254-- Iteration 14 -- 255string(8) "7fffffff" 256string(9) "7fffffffx" 257string(8) "7fffffff" 258string(1) "x" 259string(9) " 7fffffff" 260string(9) "7fffffff " 261string(9) " 7fffffff" 262string(9) " 2637fffffff" 264string(8) "7fffffff" 265string(30) " 7fffffff" 266string(10) "0-9A-Fa-f]" 267string(1) "x" 268 269-- Iteration 15 -- 270string(2) "53" 271string(3) "53x" 272string(2) "53" 273string(1) "x" 274string(3) " 53" 275string(3) "53 " 276string(3) " 53" 277string(3) " 27853" 279string(4) " 53" 280string(30) " 53" 281string(10) "0-9A-Fa-f]" 282string(1) "x" 283 284-- Iteration 16 -- 285string(1) "1" 286string(2) "1x" 287string(1) "1" 288string(1) "x" 289string(2) " 1" 290string(2) "1 " 291string(2) " 1" 292string(2) " 2931" 294string(4) " 1" 295string(30) " 1" 296string(10) "0-9A-Fa-f]" 297string(1) "x" 298 299-- Iteration 17 -- 300string(16) "ffffffff80000000" 301string(17) "ffffffff80000000x" 302string(16) "ffffffff80000000" 303string(1) "x" 304string(17) " ffffffff80000000" 305string(17) "ffffffff80000000 " 306string(17) " ffffffff80000000" 307string(17) " 308ffffffff80000000" 309string(16) "ffffffff80000000" 310string(30) " ffffffff80000000" 311string(10) "0-9A-Fa-f]" 312string(1) "x" 313 314-- Iteration 18 -- 315string(8) "7fffffff" 316string(9) "7fffffffx" 317string(8) "7fffffff" 318string(1) "x" 319string(9) " 7fffffff" 320string(9) "7fffffff " 321string(9) " 7fffffff" 322string(9) " 3237fffffff" 324string(8) "7fffffff" 325string(30) " 7fffffff" 326string(10) "0-9A-Fa-f]" 327string(1) "x" 328Done 329