sprintf_variation1.phpt 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. --TEST--
  2. Test sprintf() function : usage variations - unexpected values for format argument
  3. --FILE--
  4. <?php
  5. /*
  6. * Testing sprintf() : with different unexpected values for format argument other than the strings
  7. */
  8. echo "*** Testing sprintf() : with unexpected values for format argument ***\n";
  9. // initialing required variables
  10. $arg1 = "second arg";
  11. $arg2 = "third arg";
  12. // declaring class
  13. class sample
  14. {
  15. public function __toString() {
  16. return "Object";
  17. }
  18. }
  19. // creating a file resource
  20. $file_handle = fopen(__FILE__, 'r');
  21. //array of values to iterate over
  22. $values = array(
  23. // int data
  24. 0,
  25. 1,
  26. 12345,
  27. -2345,
  28. // float data
  29. 10.5,
  30. -10.5,
  31. 10.1234567e10,
  32. 10.7654321E-10,
  33. .5,
  34. // array data
  35. array(),
  36. array(0),
  37. array(1),
  38. array(1, 2),
  39. array('color' => 'red', 'item' => 'pen'),
  40. // boolean data
  41. true,
  42. false,
  43. TRUE,
  44. FALSE,
  45. // empty data
  46. "",
  47. '',
  48. // object data
  49. new sample(),
  50. // resource data
  51. $file_handle
  52. );
  53. // loop through each element of the array for format
  54. $count = 1;
  55. foreach($values as $value) {
  56. echo "\n-- Iteration $count --\n";
  57. // with default argument
  58. try {
  59. var_dump(sprintf($value));
  60. } catch (TypeError $exception) {
  61. echo $exception->getMessage() . "\n";
  62. }
  63. // with two arguments
  64. try {
  65. var_dump(sprintf($value, $arg1));
  66. } catch (TypeError $exception) {
  67. echo $exception->getMessage() . "\n";
  68. }
  69. // with three arguments
  70. try {
  71. var_dump(sprintf($value, $arg1, $arg2));
  72. } catch (TypeError $exception) {
  73. echo $exception->getMessage() . "\n";
  74. }
  75. $count++;
  76. }
  77. // close the resource
  78. fclose($file_handle);
  79. echo "Done";
  80. ?>
  81. --EXPECT--
  82. *** Testing sprintf() : with unexpected values for format argument ***
  83. -- Iteration 1 --
  84. string(1) "0"
  85. string(1) "0"
  86. string(1) "0"
  87. -- Iteration 2 --
  88. string(1) "1"
  89. string(1) "1"
  90. string(1) "1"
  91. -- Iteration 3 --
  92. string(5) "12345"
  93. string(5) "12345"
  94. string(5) "12345"
  95. -- Iteration 4 --
  96. string(5) "-2345"
  97. string(5) "-2345"
  98. string(5) "-2345"
  99. -- Iteration 5 --
  100. string(4) "10.5"
  101. string(4) "10.5"
  102. string(4) "10.5"
  103. -- Iteration 6 --
  104. string(5) "-10.5"
  105. string(5) "-10.5"
  106. string(5) "-10.5"
  107. -- Iteration 7 --
  108. string(12) "101234567000"
  109. string(12) "101234567000"
  110. string(12) "101234567000"
  111. -- Iteration 8 --
  112. string(13) "1.07654321E-9"
  113. string(13) "1.07654321E-9"
  114. string(13) "1.07654321E-9"
  115. -- Iteration 9 --
  116. string(3) "0.5"
  117. string(3) "0.5"
  118. string(3) "0.5"
  119. -- Iteration 10 --
  120. sprintf(): Argument #1 ($format) must be of type string, array given
  121. sprintf(): Argument #1 ($format) must be of type string, array given
  122. sprintf(): Argument #1 ($format) must be of type string, array given
  123. -- Iteration 11 --
  124. sprintf(): Argument #1 ($format) must be of type string, array given
  125. sprintf(): Argument #1 ($format) must be of type string, array given
  126. sprintf(): Argument #1 ($format) must be of type string, array given
  127. -- Iteration 12 --
  128. sprintf(): Argument #1 ($format) must be of type string, array given
  129. sprintf(): Argument #1 ($format) must be of type string, array given
  130. sprintf(): Argument #1 ($format) must be of type string, array given
  131. -- Iteration 13 --
  132. sprintf(): Argument #1 ($format) must be of type string, array given
  133. sprintf(): Argument #1 ($format) must be of type string, array given
  134. sprintf(): Argument #1 ($format) must be of type string, array given
  135. -- Iteration 14 --
  136. sprintf(): Argument #1 ($format) must be of type string, array given
  137. sprintf(): Argument #1 ($format) must be of type string, array given
  138. sprintf(): Argument #1 ($format) must be of type string, array given
  139. -- Iteration 15 --
  140. string(1) "1"
  141. string(1) "1"
  142. string(1) "1"
  143. -- Iteration 16 --
  144. string(0) ""
  145. string(0) ""
  146. string(0) ""
  147. -- Iteration 17 --
  148. string(1) "1"
  149. string(1) "1"
  150. string(1) "1"
  151. -- Iteration 18 --
  152. string(0) ""
  153. string(0) ""
  154. string(0) ""
  155. -- Iteration 19 --
  156. string(0) ""
  157. string(0) ""
  158. string(0) ""
  159. -- Iteration 20 --
  160. string(0) ""
  161. string(0) ""
  162. string(0) ""
  163. -- Iteration 21 --
  164. string(6) "Object"
  165. string(6) "Object"
  166. string(6) "Object"
  167. -- Iteration 22 --
  168. sprintf(): Argument #1 ($format) must be of type string, resource given
  169. sprintf(): Argument #1 ($format) must be of type string, resource given
  170. sprintf(): Argument #1 ($format) must be of type string, resource given
  171. Done