numeric_string_errors_assign.phpt 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. --TEST--
  2. Invalid numeric string E_WARNINGs and E_NOTICEs, combined assignment operations
  3. --FILE--
  4. <?php
  5. // prevents CT eval
  6. function foxcache($val) {
  7. return [$val][0];
  8. }
  9. $a = foxcache("2 Lorem");
  10. $a += "3 ipsum";
  11. var_dump($a);
  12. $a = foxcache("dolor");
  13. $a += "sit";
  14. var_dump($a);
  15. echo "---", PHP_EOL;
  16. $a = foxcache("5 amet,");
  17. $a -= "7 consectetur";
  18. var_dump($a);
  19. $a = foxcache("adipiscing");
  20. $a -= "elit,";
  21. var_dump($a);
  22. echo "---", PHP_EOL;
  23. $a = foxcache("11 sed");
  24. $a *= "13 do";
  25. var_dump($a);
  26. $a = foxcache("eiusmod");
  27. $a *= "tempor";
  28. var_dump($a);
  29. echo "---", PHP_EOL;
  30. $a = foxcache("17 incididunt");
  31. $a /= "19 ut";
  32. var_dump($a);
  33. $a = foxcache("labore");
  34. $a /= "et";
  35. var_dump($a);
  36. echo "---", PHP_EOL;
  37. $a = foxcache("23 dolore");
  38. $a **= "29 magna";
  39. var_dump($a);
  40. $a = foxcache("aliqua.");
  41. $a **= "Ut";
  42. var_dump($a);
  43. echo "---", PHP_EOL;
  44. $a = foxcache("31 enim");
  45. $a %= "37 ad";
  46. var_dump($a);
  47. try {
  48. $a = foxcache("minim");
  49. $a %= "veniam,";
  50. var_dump($a);
  51. } catch (DivisionByZeroError $e) {
  52. }
  53. echo "---", PHP_EOL;
  54. $a = foxcache("41 minim");
  55. $a <<= "43 veniam,";
  56. var_dump($a);
  57. $a = foxcache("quis");
  58. $a <<= "nostrud";
  59. var_dump($a);
  60. echo "---", PHP_EOL;
  61. $a = foxcache("47 exercitation");
  62. $a >>= "53 ullamco";
  63. var_dump($a);
  64. $a = foxcache("laboris");
  65. $a >>= "nisi";
  66. var_dump($a);
  67. echo "---", PHP_EOL;
  68. $a = foxcache("59 ut");
  69. $a |= 61;
  70. var_dump($a);
  71. $a = foxcache(67);
  72. $a |= "71 aliquip";
  73. var_dump($a);
  74. $a = foxcache("ex");
  75. $a |= 73;
  76. var_dump($a);
  77. $a = foxcache(79);
  78. $a |= "ea";
  79. var_dump($a);
  80. echo "---", PHP_EOL;
  81. $a = foxcache("83 commodo");
  82. $a &= 89;
  83. var_dump($a);
  84. $a = foxcache(97);
  85. $a &= "101 consequat.";
  86. var_dump($a);
  87. $a = foxcache("Duis");
  88. $a &= 103;
  89. var_dump($a);
  90. $a = foxcache(107);
  91. $a &= "aute";
  92. var_dump($a);
  93. echo "---", PHP_EOL;
  94. $a = foxcache("109 irure");
  95. $a ^= 113;
  96. var_dump($a);
  97. $a = foxcache(127);
  98. $a ^= "131 dolor";
  99. var_dump($a);
  100. $a = foxcache("in");
  101. $a ^= 137;
  102. var_dump($a);
  103. $a = foxcache(139);
  104. $a ^= "reprehenderit";
  105. var_dump($a);
  106. ?>
  107. --EXPECTF--
  108. Notice: A non well formed numeric value encountered in %s on line %d
  109. Notice: A non well formed numeric value encountered in %s on line %d
  110. int(5)
  111. Warning: A non-numeric value encountered in %s on line %d
  112. Warning: A non-numeric value encountered in %s on line %d
  113. int(0)
  114. ---
  115. Notice: A non well formed numeric value encountered in %s on line %d
  116. Notice: A non well formed numeric value encountered in %s on line %d
  117. int(-2)
  118. Warning: A non-numeric value encountered in %s on line %d
  119. Warning: A non-numeric value encountered in %s on line %d
  120. int(0)
  121. ---
  122. Notice: A non well formed numeric value encountered in %s on line %d
  123. Notice: A non well formed numeric value encountered in %s on line %d
  124. int(143)
  125. Warning: A non-numeric value encountered in %s on line %d
  126. Warning: A non-numeric value encountered in %s on line %d
  127. int(0)
  128. ---
  129. Notice: A non well formed numeric value encountered in %s on line %d
  130. Notice: A non well formed numeric value encountered in %s on line %d
  131. float(0.89473684210526)
  132. Warning: A non-numeric value encountered in %s on line %d
  133. Warning: A non-numeric value encountered in %s on line %d
  134. Warning: Division by zero in %s on line %d
  135. float(NAN)
  136. ---
  137. Notice: A non well formed numeric value encountered in %s on line %d
  138. Notice: A non well formed numeric value encountered in %s on line %d
  139. float(3.0910586430935E+39)
  140. Warning: A non-numeric value encountered in %s on line %d
  141. Warning: A non-numeric value encountered in %s on line %d
  142. int(1)
  143. ---
  144. Notice: A non well formed numeric value encountered in %s on line %d
  145. Notice: A non well formed numeric value encountered in %s on line %d
  146. int(31)
  147. Warning: A non-numeric value encountered in %s on line %d
  148. Warning: A non-numeric value encountered in %s on line %d
  149. ---
  150. Notice: A non well formed numeric value encountered in %s on line %d
  151. Notice: A non well formed numeric value encountered in %s on line %d
  152. int(%d)
  153. Warning: A non-numeric value encountered in %s on line %d
  154. Warning: A non-numeric value encountered in %s on line %d
  155. int(0)
  156. ---
  157. Notice: A non well formed numeric value encountered in %s on line %d
  158. Notice: A non well formed numeric value encountered in %s on line %d
  159. int(0)
  160. Warning: A non-numeric value encountered in %s on line %d
  161. Warning: A non-numeric value encountered in %s on line %d
  162. int(0)
  163. ---
  164. Notice: A non well formed numeric value encountered in %s on line %d
  165. int(63)
  166. Notice: A non well formed numeric value encountered in %s on line %d
  167. int(71)
  168. Warning: A non-numeric value encountered in %s on line %d
  169. int(73)
  170. Warning: A non-numeric value encountered in %s on line %d
  171. int(79)
  172. ---
  173. Notice: A non well formed numeric value encountered in %s on line %d
  174. int(81)
  175. Notice: A non well formed numeric value encountered in %s on line %d
  176. int(97)
  177. Warning: A non-numeric value encountered in %s on line %d
  178. int(0)
  179. Warning: A non-numeric value encountered in %s on line %d
  180. int(0)
  181. ---
  182. Notice: A non well formed numeric value encountered in %s on line %d
  183. int(28)
  184. Notice: A non well formed numeric value encountered in %s on line %d
  185. int(252)
  186. Warning: A non-numeric value encountered in %s on line %d
  187. int(137)
  188. Warning: A non-numeric value encountered in %s on line %d
  189. int(139)