sprintf_variation28.phpt 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. --TEST--
  2. Test sprintf() function : usage variations - octal formats with integer values
  3. --SKIPIF--
  4. <?php
  5. if (PHP_INT_SIZE != 4) {
  6. die("skip this test is for 32bit platform only");
  7. }
  8. ?>
  9. --FILE--
  10. <?php
  11. echo "*** Testing sprintf() : octal formats with integer values ***\n";
  12. // array of integer values
  13. $integer_values = array(
  14. 0,
  15. 1,
  16. -1,
  17. -2147483648, // max negative integer value
  18. -2147483647,
  19. 2147483647, // max positive integer value
  20. 2147483640,
  21. 0x123B, // integer as hexadecimal
  22. 0x12ab,
  23. 0Xfff,
  24. 0XFA,
  25. -0x80000000, // max negative integer as hexadecimal
  26. 0x7fffffff, // max positive integer as hexadecimal
  27. 0x7FFFFFFF, // max positive integer as hexadecimal
  28. 0123, // integer as octal
  29. 01, // should be quivalent to octal 1
  30. -020000000000, // max negative integer as octal
  31. 017777777777 // max positive integer as octal
  32. );
  33. // array of octal formats
  34. $octal_formats = array(
  35. "%o", "%lo", " %o", "%o ",
  36. "\t%o", "\n%o", "%4o", "%30o",
  37. );
  38. $count = 1;
  39. foreach($integer_values as $integer_value) {
  40. echo "\n-- Iteration $count --\n";
  41. foreach($octal_formats as $format) {
  42. var_dump( sprintf($format, $integer_value) );
  43. }
  44. $count++;
  45. };
  46. echo "Done";
  47. ?>
  48. --EXPECT--
  49. *** Testing sprintf() : octal formats with integer values ***
  50. -- Iteration 1 --
  51. string(1) "0"
  52. string(1) "0"
  53. string(2) " 0"
  54. string(2) "0 "
  55. string(2) " 0"
  56. string(2) "
  57. 0"
  58. string(4) " 0"
  59. string(30) " 0"
  60. -- Iteration 2 --
  61. string(1) "1"
  62. string(1) "1"
  63. string(2) " 1"
  64. string(2) "1 "
  65. string(2) " 1"
  66. string(2) "
  67. 1"
  68. string(4) " 1"
  69. string(30) " 1"
  70. -- Iteration 3 --
  71. string(11) "37777777777"
  72. string(11) "37777777777"
  73. string(12) " 37777777777"
  74. string(12) "37777777777 "
  75. string(12) " 37777777777"
  76. string(12) "
  77. 37777777777"
  78. string(11) "37777777777"
  79. string(30) " 37777777777"
  80. -- Iteration 4 --
  81. string(11) "20000000000"
  82. string(11) "20000000000"
  83. string(12) " 20000000000"
  84. string(12) "20000000000 "
  85. string(12) " 20000000000"
  86. string(12) "
  87. 20000000000"
  88. string(11) "20000000000"
  89. string(30) " 20000000000"
  90. -- Iteration 5 --
  91. string(11) "20000000001"
  92. string(11) "20000000001"
  93. string(12) " 20000000001"
  94. string(12) "20000000001 "
  95. string(12) " 20000000001"
  96. string(12) "
  97. 20000000001"
  98. string(11) "20000000001"
  99. string(30) " 20000000001"
  100. -- Iteration 6 --
  101. string(11) "17777777777"
  102. string(11) "17777777777"
  103. string(12) " 17777777777"
  104. string(12) "17777777777 "
  105. string(12) " 17777777777"
  106. string(12) "
  107. 17777777777"
  108. string(11) "17777777777"
  109. string(30) " 17777777777"
  110. -- Iteration 7 --
  111. string(11) "17777777770"
  112. string(11) "17777777770"
  113. string(12) " 17777777770"
  114. string(12) "17777777770 "
  115. string(12) " 17777777770"
  116. string(12) "
  117. 17777777770"
  118. string(11) "17777777770"
  119. string(30) " 17777777770"
  120. -- Iteration 8 --
  121. string(5) "11073"
  122. string(5) "11073"
  123. string(6) " 11073"
  124. string(6) "11073 "
  125. string(6) " 11073"
  126. string(6) "
  127. 11073"
  128. string(5) "11073"
  129. string(30) " 11073"
  130. -- Iteration 9 --
  131. string(5) "11253"
  132. string(5) "11253"
  133. string(6) " 11253"
  134. string(6) "11253 "
  135. string(6) " 11253"
  136. string(6) "
  137. 11253"
  138. string(5) "11253"
  139. string(30) " 11253"
  140. -- Iteration 10 --
  141. string(4) "7777"
  142. string(4) "7777"
  143. string(5) " 7777"
  144. string(5) "7777 "
  145. string(5) " 7777"
  146. string(5) "
  147. 7777"
  148. string(4) "7777"
  149. string(30) " 7777"
  150. -- Iteration 11 --
  151. string(3) "372"
  152. string(3) "372"
  153. string(4) " 372"
  154. string(4) "372 "
  155. string(4) " 372"
  156. string(4) "
  157. 372"
  158. string(4) " 372"
  159. string(30) " 372"
  160. -- Iteration 12 --
  161. string(11) "20000000000"
  162. string(11) "20000000000"
  163. string(12) " 20000000000"
  164. string(12) "20000000000 "
  165. string(12) " 20000000000"
  166. string(12) "
  167. 20000000000"
  168. string(11) "20000000000"
  169. string(30) " 20000000000"
  170. -- Iteration 13 --
  171. string(11) "17777777777"
  172. string(11) "17777777777"
  173. string(12) " 17777777777"
  174. string(12) "17777777777 "
  175. string(12) " 17777777777"
  176. string(12) "
  177. 17777777777"
  178. string(11) "17777777777"
  179. string(30) " 17777777777"
  180. -- Iteration 14 --
  181. string(11) "17777777777"
  182. string(11) "17777777777"
  183. string(12) " 17777777777"
  184. string(12) "17777777777 "
  185. string(12) " 17777777777"
  186. string(12) "
  187. 17777777777"
  188. string(11) "17777777777"
  189. string(30) " 17777777777"
  190. -- Iteration 15 --
  191. string(3) "123"
  192. string(3) "123"
  193. string(4) " 123"
  194. string(4) "123 "
  195. string(4) " 123"
  196. string(4) "
  197. 123"
  198. string(4) " 123"
  199. string(30) " 123"
  200. -- Iteration 16 --
  201. string(1) "1"
  202. string(1) "1"
  203. string(2) " 1"
  204. string(2) "1 "
  205. string(2) " 1"
  206. string(2) "
  207. 1"
  208. string(4) " 1"
  209. string(30) " 1"
  210. -- Iteration 17 --
  211. string(11) "20000000000"
  212. string(11) "20000000000"
  213. string(12) " 20000000000"
  214. string(12) "20000000000 "
  215. string(12) " 20000000000"
  216. string(12) "
  217. 20000000000"
  218. string(11) "20000000000"
  219. string(30) " 20000000000"
  220. -- Iteration 18 --
  221. string(11) "17777777777"
  222. string(11) "17777777777"
  223. string(12) " 17777777777"
  224. string(12) "17777777777 "
  225. string(12) " 17777777777"
  226. string(12) "
  227. 17777777777"
  228. string(11) "17777777777"
  229. string(30) " 17777777777"
  230. Done