divide_variationStr.phpt 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. --TEST--
  2. Test / operator : various numbers as strings
  3. --FILE--
  4. <?php
  5. $strVals = array(
  6. "0","65","-44", "1.2", "-7.7", "abc", "123abc", "123e5", "123e5xyz", " 123abc", "123 abc", "123abc ", "3.4a",
  7. "a5.9"
  8. );
  9. error_reporting(E_ERROR);
  10. foreach ($strVals as $strVal) {
  11. foreach($strVals as $otherVal) {
  12. echo "--- testing: '$strVal' / '$otherVal' ---\n";
  13. var_dump($strVal/$otherVal);
  14. }
  15. }
  16. ?>
  17. ===DONE===
  18. --EXPECT--
  19. --- testing: '0' / '0' ---
  20. float(NAN)
  21. --- testing: '0' / '65' ---
  22. int(0)
  23. --- testing: '0' / '-44' ---
  24. int(0)
  25. --- testing: '0' / '1.2' ---
  26. float(0)
  27. --- testing: '0' / '-7.7' ---
  28. float(-0)
  29. --- testing: '0' / 'abc' ---
  30. float(NAN)
  31. --- testing: '0' / '123abc' ---
  32. int(0)
  33. --- testing: '0' / '123e5' ---
  34. float(0)
  35. --- testing: '0' / '123e5xyz' ---
  36. float(0)
  37. --- testing: '0' / ' 123abc' ---
  38. int(0)
  39. --- testing: '0' / '123 abc' ---
  40. int(0)
  41. --- testing: '0' / '123abc ' ---
  42. int(0)
  43. --- testing: '0' / '3.4a' ---
  44. float(0)
  45. --- testing: '0' / 'a5.9' ---
  46. float(NAN)
  47. --- testing: '65' / '0' ---
  48. float(INF)
  49. --- testing: '65' / '65' ---
  50. int(1)
  51. --- testing: '65' / '-44' ---
  52. float(-1.4772727272727)
  53. --- testing: '65' / '1.2' ---
  54. float(54.166666666667)
  55. --- testing: '65' / '-7.7' ---
  56. float(-8.4415584415584)
  57. --- testing: '65' / 'abc' ---
  58. float(INF)
  59. --- testing: '65' / '123abc' ---
  60. float(0.52845528455285)
  61. --- testing: '65' / '123e5' ---
  62. float(5.2845528455285E-6)
  63. --- testing: '65' / '123e5xyz' ---
  64. float(5.2845528455285E-6)
  65. --- testing: '65' / ' 123abc' ---
  66. float(0.52845528455285)
  67. --- testing: '65' / '123 abc' ---
  68. float(0.52845528455285)
  69. --- testing: '65' / '123abc ' ---
  70. float(0.52845528455285)
  71. --- testing: '65' / '3.4a' ---
  72. float(19.117647058824)
  73. --- testing: '65' / 'a5.9' ---
  74. float(INF)
  75. --- testing: '-44' / '0' ---
  76. float(-INF)
  77. --- testing: '-44' / '65' ---
  78. float(-0.67692307692308)
  79. --- testing: '-44' / '-44' ---
  80. int(1)
  81. --- testing: '-44' / '1.2' ---
  82. float(-36.666666666667)
  83. --- testing: '-44' / '-7.7' ---
  84. float(5.7142857142857)
  85. --- testing: '-44' / 'abc' ---
  86. float(-INF)
  87. --- testing: '-44' / '123abc' ---
  88. float(-0.35772357723577)
  89. --- testing: '-44' / '123e5' ---
  90. float(-3.5772357723577E-6)
  91. --- testing: '-44' / '123e5xyz' ---
  92. float(-3.5772357723577E-6)
  93. --- testing: '-44' / ' 123abc' ---
  94. float(-0.35772357723577)
  95. --- testing: '-44' / '123 abc' ---
  96. float(-0.35772357723577)
  97. --- testing: '-44' / '123abc ' ---
  98. float(-0.35772357723577)
  99. --- testing: '-44' / '3.4a' ---
  100. float(-12.941176470588)
  101. --- testing: '-44' / 'a5.9' ---
  102. float(-INF)
  103. --- testing: '1.2' / '0' ---
  104. float(INF)
  105. --- testing: '1.2' / '65' ---
  106. float(0.018461538461538)
  107. --- testing: '1.2' / '-44' ---
  108. float(-0.027272727272727)
  109. --- testing: '1.2' / '1.2' ---
  110. float(1)
  111. --- testing: '1.2' / '-7.7' ---
  112. float(-0.15584415584416)
  113. --- testing: '1.2' / 'abc' ---
  114. float(INF)
  115. --- testing: '1.2' / '123abc' ---
  116. float(0.0097560975609756)
  117. --- testing: '1.2' / '123e5' ---
  118. float(9.7560975609756E-8)
  119. --- testing: '1.2' / '123e5xyz' ---
  120. float(9.7560975609756E-8)
  121. --- testing: '1.2' / ' 123abc' ---
  122. float(0.0097560975609756)
  123. --- testing: '1.2' / '123 abc' ---
  124. float(0.0097560975609756)
  125. --- testing: '1.2' / '123abc ' ---
  126. float(0.0097560975609756)
  127. --- testing: '1.2' / '3.4a' ---
  128. float(0.35294117647059)
  129. --- testing: '1.2' / 'a5.9' ---
  130. float(INF)
  131. --- testing: '-7.7' / '0' ---
  132. float(-INF)
  133. --- testing: '-7.7' / '65' ---
  134. float(-0.11846153846154)
  135. --- testing: '-7.7' / '-44' ---
  136. float(0.175)
  137. --- testing: '-7.7' / '1.2' ---
  138. float(-6.4166666666667)
  139. --- testing: '-7.7' / '-7.7' ---
  140. float(1)
  141. --- testing: '-7.7' / 'abc' ---
  142. float(-INF)
  143. --- testing: '-7.7' / '123abc' ---
  144. float(-0.06260162601626)
  145. --- testing: '-7.7' / '123e5' ---
  146. float(-6.260162601626E-7)
  147. --- testing: '-7.7' / '123e5xyz' ---
  148. float(-6.260162601626E-7)
  149. --- testing: '-7.7' / ' 123abc' ---
  150. float(-0.06260162601626)
  151. --- testing: '-7.7' / '123 abc' ---
  152. float(-0.06260162601626)
  153. --- testing: '-7.7' / '123abc ' ---
  154. float(-0.06260162601626)
  155. --- testing: '-7.7' / '3.4a' ---
  156. float(-2.2647058823529)
  157. --- testing: '-7.7' / 'a5.9' ---
  158. float(-INF)
  159. --- testing: 'abc' / '0' ---
  160. float(NAN)
  161. --- testing: 'abc' / '65' ---
  162. int(0)
  163. --- testing: 'abc' / '-44' ---
  164. int(0)
  165. --- testing: 'abc' / '1.2' ---
  166. float(0)
  167. --- testing: 'abc' / '-7.7' ---
  168. float(-0)
  169. --- testing: 'abc' / 'abc' ---
  170. float(NAN)
  171. --- testing: 'abc' / '123abc' ---
  172. int(0)
  173. --- testing: 'abc' / '123e5' ---
  174. float(0)
  175. --- testing: 'abc' / '123e5xyz' ---
  176. float(0)
  177. --- testing: 'abc' / ' 123abc' ---
  178. int(0)
  179. --- testing: 'abc' / '123 abc' ---
  180. int(0)
  181. --- testing: 'abc' / '123abc ' ---
  182. int(0)
  183. --- testing: 'abc' / '3.4a' ---
  184. float(0)
  185. --- testing: 'abc' / 'a5.9' ---
  186. float(NAN)
  187. --- testing: '123abc' / '0' ---
  188. float(INF)
  189. --- testing: '123abc' / '65' ---
  190. float(1.8923076923077)
  191. --- testing: '123abc' / '-44' ---
  192. float(-2.7954545454545)
  193. --- testing: '123abc' / '1.2' ---
  194. float(102.5)
  195. --- testing: '123abc' / '-7.7' ---
  196. float(-15.974025974026)
  197. --- testing: '123abc' / 'abc' ---
  198. float(INF)
  199. --- testing: '123abc' / '123abc' ---
  200. int(1)
  201. --- testing: '123abc' / '123e5' ---
  202. float(1.0E-5)
  203. --- testing: '123abc' / '123e5xyz' ---
  204. float(1.0E-5)
  205. --- testing: '123abc' / ' 123abc' ---
  206. int(1)
  207. --- testing: '123abc' / '123 abc' ---
  208. int(1)
  209. --- testing: '123abc' / '123abc ' ---
  210. int(1)
  211. --- testing: '123abc' / '3.4a' ---
  212. float(36.176470588235)
  213. --- testing: '123abc' / 'a5.9' ---
  214. float(INF)
  215. --- testing: '123e5' / '0' ---
  216. float(INF)
  217. --- testing: '123e5' / '65' ---
  218. float(189230.76923077)
  219. --- testing: '123e5' / '-44' ---
  220. float(-279545.45454545)
  221. --- testing: '123e5' / '1.2' ---
  222. float(10250000)
  223. --- testing: '123e5' / '-7.7' ---
  224. float(-1597402.5974026)
  225. --- testing: '123e5' / 'abc' ---
  226. float(INF)
  227. --- testing: '123e5' / '123abc' ---
  228. float(100000)
  229. --- testing: '123e5' / '123e5' ---
  230. float(1)
  231. --- testing: '123e5' / '123e5xyz' ---
  232. float(1)
  233. --- testing: '123e5' / ' 123abc' ---
  234. float(100000)
  235. --- testing: '123e5' / '123 abc' ---
  236. float(100000)
  237. --- testing: '123e5' / '123abc ' ---
  238. float(100000)
  239. --- testing: '123e5' / '3.4a' ---
  240. float(3617647.0588235)
  241. --- testing: '123e5' / 'a5.9' ---
  242. float(INF)
  243. --- testing: '123e5xyz' / '0' ---
  244. float(INF)
  245. --- testing: '123e5xyz' / '65' ---
  246. float(189230.76923077)
  247. --- testing: '123e5xyz' / '-44' ---
  248. float(-279545.45454545)
  249. --- testing: '123e5xyz' / '1.2' ---
  250. float(10250000)
  251. --- testing: '123e5xyz' / '-7.7' ---
  252. float(-1597402.5974026)
  253. --- testing: '123e5xyz' / 'abc' ---
  254. float(INF)
  255. --- testing: '123e5xyz' / '123abc' ---
  256. float(100000)
  257. --- testing: '123e5xyz' / '123e5' ---
  258. float(1)
  259. --- testing: '123e5xyz' / '123e5xyz' ---
  260. float(1)
  261. --- testing: '123e5xyz' / ' 123abc' ---
  262. float(100000)
  263. --- testing: '123e5xyz' / '123 abc' ---
  264. float(100000)
  265. --- testing: '123e5xyz' / '123abc ' ---
  266. float(100000)
  267. --- testing: '123e5xyz' / '3.4a' ---
  268. float(3617647.0588235)
  269. --- testing: '123e5xyz' / 'a5.9' ---
  270. float(INF)
  271. --- testing: ' 123abc' / '0' ---
  272. float(INF)
  273. --- testing: ' 123abc' / '65' ---
  274. float(1.8923076923077)
  275. --- testing: ' 123abc' / '-44' ---
  276. float(-2.7954545454545)
  277. --- testing: ' 123abc' / '1.2' ---
  278. float(102.5)
  279. --- testing: ' 123abc' / '-7.7' ---
  280. float(-15.974025974026)
  281. --- testing: ' 123abc' / 'abc' ---
  282. float(INF)
  283. --- testing: ' 123abc' / '123abc' ---
  284. int(1)
  285. --- testing: ' 123abc' / '123e5' ---
  286. float(1.0E-5)
  287. --- testing: ' 123abc' / '123e5xyz' ---
  288. float(1.0E-5)
  289. --- testing: ' 123abc' / ' 123abc' ---
  290. int(1)
  291. --- testing: ' 123abc' / '123 abc' ---
  292. int(1)
  293. --- testing: ' 123abc' / '123abc ' ---
  294. int(1)
  295. --- testing: ' 123abc' / '3.4a' ---
  296. float(36.176470588235)
  297. --- testing: ' 123abc' / 'a5.9' ---
  298. float(INF)
  299. --- testing: '123 abc' / '0' ---
  300. float(INF)
  301. --- testing: '123 abc' / '65' ---
  302. float(1.8923076923077)
  303. --- testing: '123 abc' / '-44' ---
  304. float(-2.7954545454545)
  305. --- testing: '123 abc' / '1.2' ---
  306. float(102.5)
  307. --- testing: '123 abc' / '-7.7' ---
  308. float(-15.974025974026)
  309. --- testing: '123 abc' / 'abc' ---
  310. float(INF)
  311. --- testing: '123 abc' / '123abc' ---
  312. int(1)
  313. --- testing: '123 abc' / '123e5' ---
  314. float(1.0E-5)
  315. --- testing: '123 abc' / '123e5xyz' ---
  316. float(1.0E-5)
  317. --- testing: '123 abc' / ' 123abc' ---
  318. int(1)
  319. --- testing: '123 abc' / '123 abc' ---
  320. int(1)
  321. --- testing: '123 abc' / '123abc ' ---
  322. int(1)
  323. --- testing: '123 abc' / '3.4a' ---
  324. float(36.176470588235)
  325. --- testing: '123 abc' / 'a5.9' ---
  326. float(INF)
  327. --- testing: '123abc ' / '0' ---
  328. float(INF)
  329. --- testing: '123abc ' / '65' ---
  330. float(1.8923076923077)
  331. --- testing: '123abc ' / '-44' ---
  332. float(-2.7954545454545)
  333. --- testing: '123abc ' / '1.2' ---
  334. float(102.5)
  335. --- testing: '123abc ' / '-7.7' ---
  336. float(-15.974025974026)
  337. --- testing: '123abc ' / 'abc' ---
  338. float(INF)
  339. --- testing: '123abc ' / '123abc' ---
  340. int(1)
  341. --- testing: '123abc ' / '123e5' ---
  342. float(1.0E-5)
  343. --- testing: '123abc ' / '123e5xyz' ---
  344. float(1.0E-5)
  345. --- testing: '123abc ' / ' 123abc' ---
  346. int(1)
  347. --- testing: '123abc ' / '123 abc' ---
  348. int(1)
  349. --- testing: '123abc ' / '123abc ' ---
  350. int(1)
  351. --- testing: '123abc ' / '3.4a' ---
  352. float(36.176470588235)
  353. --- testing: '123abc ' / 'a5.9' ---
  354. float(INF)
  355. --- testing: '3.4a' / '0' ---
  356. float(INF)
  357. --- testing: '3.4a' / '65' ---
  358. float(0.052307692307692)
  359. --- testing: '3.4a' / '-44' ---
  360. float(-0.077272727272727)
  361. --- testing: '3.4a' / '1.2' ---
  362. float(2.8333333333333)
  363. --- testing: '3.4a' / '-7.7' ---
  364. float(-0.44155844155844)
  365. --- testing: '3.4a' / 'abc' ---
  366. float(INF)
  367. --- testing: '3.4a' / '123abc' ---
  368. float(0.027642276422764)
  369. --- testing: '3.4a' / '123e5' ---
  370. float(2.7642276422764E-7)
  371. --- testing: '3.4a' / '123e5xyz' ---
  372. float(2.7642276422764E-7)
  373. --- testing: '3.4a' / ' 123abc' ---
  374. float(0.027642276422764)
  375. --- testing: '3.4a' / '123 abc' ---
  376. float(0.027642276422764)
  377. --- testing: '3.4a' / '123abc ' ---
  378. float(0.027642276422764)
  379. --- testing: '3.4a' / '3.4a' ---
  380. float(1)
  381. --- testing: '3.4a' / 'a5.9' ---
  382. float(INF)
  383. --- testing: 'a5.9' / '0' ---
  384. float(NAN)
  385. --- testing: 'a5.9' / '65' ---
  386. int(0)
  387. --- testing: 'a5.9' / '-44' ---
  388. int(0)
  389. --- testing: 'a5.9' / '1.2' ---
  390. float(0)
  391. --- testing: 'a5.9' / '-7.7' ---
  392. float(-0)
  393. --- testing: 'a5.9' / 'abc' ---
  394. float(NAN)
  395. --- testing: 'a5.9' / '123abc' ---
  396. int(0)
  397. --- testing: 'a5.9' / '123e5' ---
  398. float(0)
  399. --- testing: 'a5.9' / '123e5xyz' ---
  400. float(0)
  401. --- testing: 'a5.9' / ' 123abc' ---
  402. int(0)
  403. --- testing: 'a5.9' / '123 abc' ---
  404. int(0)
  405. --- testing: 'a5.9' / '123abc ' ---
  406. int(0)
  407. --- testing: 'a5.9' / '3.4a' ---
  408. float(0)
  409. --- testing: 'a5.9' / 'a5.9' ---
  410. float(NAN)
  411. ===DONE===