bitwiseXor_variationStr.phpt 11 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(bin2hex($strVal^$otherVal));
  14. }
  15. }
  16. ?>
  17. ===DONE===
  18. --EXPECT--
  19. --- testing: '0' ^ '0' ---
  20. string(2) "00"
  21. --- testing: '0' ^ '65' ---
  22. string(2) "06"
  23. --- testing: '0' ^ '-44' ---
  24. string(2) "1d"
  25. --- testing: '0' ^ '1.2' ---
  26. string(2) "01"
  27. --- testing: '0' ^ '-7.7' ---
  28. string(2) "1d"
  29. --- testing: '0' ^ 'abc' ---
  30. string(2) "51"
  31. --- testing: '0' ^ '123abc' ---
  32. string(2) "01"
  33. --- testing: '0' ^ '123e5' ---
  34. string(2) "01"
  35. --- testing: '0' ^ '123e5xyz' ---
  36. string(2) "01"
  37. --- testing: '0' ^ ' 123abc' ---
  38. string(2) "10"
  39. --- testing: '0' ^ '123 abc' ---
  40. string(2) "01"
  41. --- testing: '0' ^ '123abc ' ---
  42. string(2) "01"
  43. --- testing: '0' ^ '3.4a' ---
  44. string(2) "03"
  45. --- testing: '0' ^ 'a5.9' ---
  46. string(2) "51"
  47. --- testing: '65' ^ '0' ---
  48. string(2) "06"
  49. --- testing: '65' ^ '65' ---
  50. string(4) "0000"
  51. --- testing: '65' ^ '-44' ---
  52. string(4) "1b01"
  53. --- testing: '65' ^ '1.2' ---
  54. string(4) "071b"
  55. --- testing: '65' ^ '-7.7' ---
  56. string(4) "1b02"
  57. --- testing: '65' ^ 'abc' ---
  58. string(4) "5757"
  59. --- testing: '65' ^ '123abc' ---
  60. string(4) "0707"
  61. --- testing: '65' ^ '123e5' ---
  62. string(4) "0707"
  63. --- testing: '65' ^ '123e5xyz' ---
  64. string(4) "0707"
  65. --- testing: '65' ^ ' 123abc' ---
  66. string(4) "1604"
  67. --- testing: '65' ^ '123 abc' ---
  68. string(4) "0707"
  69. --- testing: '65' ^ '123abc ' ---
  70. string(4) "0707"
  71. --- testing: '65' ^ '3.4a' ---
  72. string(4) "051b"
  73. --- testing: '65' ^ 'a5.9' ---
  74. string(4) "5700"
  75. --- testing: '-44' ^ '0' ---
  76. string(2) "1d"
  77. --- testing: '-44' ^ '65' ---
  78. string(4) "1b01"
  79. --- testing: '-44' ^ '-44' ---
  80. string(6) "000000"
  81. --- testing: '-44' ^ '1.2' ---
  82. string(6) "1c1a06"
  83. --- testing: '-44' ^ '-7.7' ---
  84. string(6) "00031a"
  85. --- testing: '-44' ^ 'abc' ---
  86. string(6) "4c5657"
  87. --- testing: '-44' ^ '123abc' ---
  88. string(6) "1c0607"
  89. --- testing: '-44' ^ '123e5' ---
  90. string(6) "1c0607"
  91. --- testing: '-44' ^ '123e5xyz' ---
  92. string(6) "1c0607"
  93. --- testing: '-44' ^ ' 123abc' ---
  94. string(6) "0d0506"
  95. --- testing: '-44' ^ '123 abc' ---
  96. string(6) "1c0607"
  97. --- testing: '-44' ^ '123abc ' ---
  98. string(6) "1c0607"
  99. --- testing: '-44' ^ '3.4a' ---
  100. string(6) "1e1a00"
  101. --- testing: '-44' ^ 'a5.9' ---
  102. string(6) "4c011a"
  103. --- testing: '1.2' ^ '0' ---
  104. string(2) "01"
  105. --- testing: '1.2' ^ '65' ---
  106. string(4) "071b"
  107. --- testing: '1.2' ^ '-44' ---
  108. string(6) "1c1a06"
  109. --- testing: '1.2' ^ '1.2' ---
  110. string(6) "000000"
  111. --- testing: '1.2' ^ '-7.7' ---
  112. string(6) "1c191c"
  113. --- testing: '1.2' ^ 'abc' ---
  114. string(6) "504c51"
  115. --- testing: '1.2' ^ '123abc' ---
  116. string(6) "001c01"
  117. --- testing: '1.2' ^ '123e5' ---
  118. string(6) "001c01"
  119. --- testing: '1.2' ^ '123e5xyz' ---
  120. string(6) "001c01"
  121. --- testing: '1.2' ^ ' 123abc' ---
  122. string(6) "111f00"
  123. --- testing: '1.2' ^ '123 abc' ---
  124. string(6) "001c01"
  125. --- testing: '1.2' ^ '123abc ' ---
  126. string(6) "001c01"
  127. --- testing: '1.2' ^ '3.4a' ---
  128. string(6) "020006"
  129. --- testing: '1.2' ^ 'a5.9' ---
  130. string(6) "501b1c"
  131. --- testing: '-7.7' ^ '0' ---
  132. string(2) "1d"
  133. --- testing: '-7.7' ^ '65' ---
  134. string(4) "1b02"
  135. --- testing: '-7.7' ^ '-44' ---
  136. string(6) "00031a"
  137. --- testing: '-7.7' ^ '1.2' ---
  138. string(6) "1c191c"
  139. --- testing: '-7.7' ^ '-7.7' ---
  140. string(8) "00000000"
  141. --- testing: '-7.7' ^ 'abc' ---
  142. string(6) "4c554d"
  143. --- testing: '-7.7' ^ '123abc' ---
  144. string(8) "1c051d56"
  145. --- testing: '-7.7' ^ '123e5' ---
  146. string(8) "1c051d52"
  147. --- testing: '-7.7' ^ '123e5xyz' ---
  148. string(8) "1c051d52"
  149. --- testing: '-7.7' ^ ' 123abc' ---
  150. string(8) "0d061c04"
  151. --- testing: '-7.7' ^ '123 abc' ---
  152. string(8) "1c051d17"
  153. --- testing: '-7.7' ^ '123abc ' ---
  154. string(8) "1c051d56"
  155. --- testing: '-7.7' ^ '3.4a' ---
  156. string(8) "1e191a56"
  157. --- testing: '-7.7' ^ 'a5.9' ---
  158. string(8) "4c02000e"
  159. --- testing: 'abc' ^ '0' ---
  160. string(2) "51"
  161. --- testing: 'abc' ^ '65' ---
  162. string(4) "5757"
  163. --- testing: 'abc' ^ '-44' ---
  164. string(6) "4c5657"
  165. --- testing: 'abc' ^ '1.2' ---
  166. string(6) "504c51"
  167. --- testing: 'abc' ^ '-7.7' ---
  168. string(6) "4c554d"
  169. --- testing: 'abc' ^ 'abc' ---
  170. string(6) "000000"
  171. --- testing: 'abc' ^ '123abc' ---
  172. string(6) "505050"
  173. --- testing: 'abc' ^ '123e5' ---
  174. string(6) "505050"
  175. --- testing: 'abc' ^ '123e5xyz' ---
  176. string(6) "505050"
  177. --- testing: 'abc' ^ ' 123abc' ---
  178. string(6) "415351"
  179. --- testing: 'abc' ^ '123 abc' ---
  180. string(6) "505050"
  181. --- testing: 'abc' ^ '123abc ' ---
  182. string(6) "505050"
  183. --- testing: 'abc' ^ '3.4a' ---
  184. string(6) "524c57"
  185. --- testing: 'abc' ^ 'a5.9' ---
  186. string(6) "00574d"
  187. --- testing: '123abc' ^ '0' ---
  188. string(2) "01"
  189. --- testing: '123abc' ^ '65' ---
  190. string(4) "0707"
  191. --- testing: '123abc' ^ '-44' ---
  192. string(6) "1c0607"
  193. --- testing: '123abc' ^ '1.2' ---
  194. string(6) "001c01"
  195. --- testing: '123abc' ^ '-7.7' ---
  196. string(8) "1c051d56"
  197. --- testing: '123abc' ^ 'abc' ---
  198. string(6) "505050"
  199. --- testing: '123abc' ^ '123abc' ---
  200. string(12) "000000000000"
  201. --- testing: '123abc' ^ '123e5' ---
  202. string(10) "0000000457"
  203. --- testing: '123abc' ^ '123e5xyz' ---
  204. string(12) "00000004571b"
  205. --- testing: '123abc' ^ ' 123abc' ---
  206. string(12) "110301520301"
  207. --- testing: '123abc' ^ '123 abc' ---
  208. string(12) "000000410301"
  209. --- testing: '123abc' ^ '123abc ' ---
  210. string(12) "000000000000"
  211. --- testing: '123abc' ^ '3.4a' ---
  212. string(8) "021c0700"
  213. --- testing: '123abc' ^ 'a5.9' ---
  214. string(8) "50071d58"
  215. --- testing: '123e5' ^ '0' ---
  216. string(2) "01"
  217. --- testing: '123e5' ^ '65' ---
  218. string(4) "0707"
  219. --- testing: '123e5' ^ '-44' ---
  220. string(6) "1c0607"
  221. --- testing: '123e5' ^ '1.2' ---
  222. string(6) "001c01"
  223. --- testing: '123e5' ^ '-7.7' ---
  224. string(8) "1c051d52"
  225. --- testing: '123e5' ^ 'abc' ---
  226. string(6) "505050"
  227. --- testing: '123e5' ^ '123abc' ---
  228. string(10) "0000000457"
  229. --- testing: '123e5' ^ '123e5' ---
  230. string(10) "0000000000"
  231. --- testing: '123e5' ^ '123e5xyz' ---
  232. string(10) "0000000000"
  233. --- testing: '123e5' ^ ' 123abc' ---
  234. string(10) "1103015654"
  235. --- testing: '123e5' ^ '123 abc' ---
  236. string(10) "0000004554"
  237. --- testing: '123e5' ^ '123abc ' ---
  238. string(10) "0000000457"
  239. --- testing: '123e5' ^ '3.4a' ---
  240. string(8) "021c0704"
  241. --- testing: '123e5' ^ 'a5.9' ---
  242. string(8) "50071d5c"
  243. --- testing: '123e5xyz' ^ '0' ---
  244. string(2) "01"
  245. --- testing: '123e5xyz' ^ '65' ---
  246. string(4) "0707"
  247. --- testing: '123e5xyz' ^ '-44' ---
  248. string(6) "1c0607"
  249. --- testing: '123e5xyz' ^ '1.2' ---
  250. string(6) "001c01"
  251. --- testing: '123e5xyz' ^ '-7.7' ---
  252. string(8) "1c051d52"
  253. --- testing: '123e5xyz' ^ 'abc' ---
  254. string(6) "505050"
  255. --- testing: '123e5xyz' ^ '123abc' ---
  256. string(12) "00000004571b"
  257. --- testing: '123e5xyz' ^ '123e5' ---
  258. string(10) "0000000000"
  259. --- testing: '123e5xyz' ^ '123e5xyz' ---
  260. string(16) "0000000000000000"
  261. --- testing: '123e5xyz' ^ ' 123abc' ---
  262. string(14) "11030156541a1a"
  263. --- testing: '123e5xyz' ^ '123 abc' ---
  264. string(14) "00000045541a1a"
  265. --- testing: '123e5xyz' ^ '123abc ' ---
  266. string(14) "00000004571b59"
  267. --- testing: '123e5xyz' ^ '3.4a' ---
  268. string(8) "021c0704"
  269. --- testing: '123e5xyz' ^ 'a5.9' ---
  270. string(8) "50071d5c"
  271. --- testing: ' 123abc' ^ '0' ---
  272. string(2) "10"
  273. --- testing: ' 123abc' ^ '65' ---
  274. string(4) "1604"
  275. --- testing: ' 123abc' ^ '-44' ---
  276. string(6) "0d0506"
  277. --- testing: ' 123abc' ^ '1.2' ---
  278. string(6) "111f00"
  279. --- testing: ' 123abc' ^ '-7.7' ---
  280. string(8) "0d061c04"
  281. --- testing: ' 123abc' ^ 'abc' ---
  282. string(6) "415351"
  283. --- testing: ' 123abc' ^ '123abc' ---
  284. string(12) "110301520301"
  285. --- testing: ' 123abc' ^ '123e5' ---
  286. string(10) "1103015654"
  287. --- testing: ' 123abc' ^ '123e5xyz' ---
  288. string(14) "11030156541a1a"
  289. --- testing: ' 123abc' ^ ' 123abc' ---
  290. string(14) "00000000000000"
  291. --- testing: ' 123abc' ^ '123 abc' ---
  292. string(14) "11030113000000"
  293. --- testing: ' 123abc' ^ '123abc ' ---
  294. string(14) "11030152030143"
  295. --- testing: ' 123abc' ^ '3.4a' ---
  296. string(8) "131f0652"
  297. --- testing: ' 123abc' ^ 'a5.9' ---
  298. string(8) "41041c0a"
  299. --- testing: '123 abc' ^ '0' ---
  300. string(2) "01"
  301. --- testing: '123 abc' ^ '65' ---
  302. string(4) "0707"
  303. --- testing: '123 abc' ^ '-44' ---
  304. string(6) "1c0607"
  305. --- testing: '123 abc' ^ '1.2' ---
  306. string(6) "001c01"
  307. --- testing: '123 abc' ^ '-7.7' ---
  308. string(8) "1c051d17"
  309. --- testing: '123 abc' ^ 'abc' ---
  310. string(6) "505050"
  311. --- testing: '123 abc' ^ '123abc' ---
  312. string(12) "000000410301"
  313. --- testing: '123 abc' ^ '123e5' ---
  314. string(10) "0000004554"
  315. --- testing: '123 abc' ^ '123e5xyz' ---
  316. string(14) "00000045541a1a"
  317. --- testing: '123 abc' ^ ' 123abc' ---
  318. string(14) "11030113000000"
  319. --- testing: '123 abc' ^ '123 abc' ---
  320. string(14) "00000000000000"
  321. --- testing: '123 abc' ^ '123abc ' ---
  322. string(14) "00000041030143"
  323. --- testing: '123 abc' ^ '3.4a' ---
  324. string(8) "021c0741"
  325. --- testing: '123 abc' ^ 'a5.9' ---
  326. string(8) "50071d19"
  327. --- testing: '123abc ' ^ '0' ---
  328. string(2) "01"
  329. --- testing: '123abc ' ^ '65' ---
  330. string(4) "0707"
  331. --- testing: '123abc ' ^ '-44' ---
  332. string(6) "1c0607"
  333. --- testing: '123abc ' ^ '1.2' ---
  334. string(6) "001c01"
  335. --- testing: '123abc ' ^ '-7.7' ---
  336. string(8) "1c051d56"
  337. --- testing: '123abc ' ^ 'abc' ---
  338. string(6) "505050"
  339. --- testing: '123abc ' ^ '123abc' ---
  340. string(12) "000000000000"
  341. --- testing: '123abc ' ^ '123e5' ---
  342. string(10) "0000000457"
  343. --- testing: '123abc ' ^ '123e5xyz' ---
  344. string(14) "00000004571b59"
  345. --- testing: '123abc ' ^ ' 123abc' ---
  346. string(14) "11030152030143"
  347. --- testing: '123abc ' ^ '123 abc' ---
  348. string(14) "00000041030143"
  349. --- testing: '123abc ' ^ '123abc ' ---
  350. string(14) "00000000000000"
  351. --- testing: '123abc ' ^ '3.4a' ---
  352. string(8) "021c0700"
  353. --- testing: '123abc ' ^ 'a5.9' ---
  354. string(8) "50071d58"
  355. --- testing: '3.4a' ^ '0' ---
  356. string(2) "03"
  357. --- testing: '3.4a' ^ '65' ---
  358. string(4) "051b"
  359. --- testing: '3.4a' ^ '-44' ---
  360. string(6) "1e1a00"
  361. --- testing: '3.4a' ^ '1.2' ---
  362. string(6) "020006"
  363. --- testing: '3.4a' ^ '-7.7' ---
  364. string(8) "1e191a56"
  365. --- testing: '3.4a' ^ 'abc' ---
  366. string(6) "524c57"
  367. --- testing: '3.4a' ^ '123abc' ---
  368. string(8) "021c0700"
  369. --- testing: '3.4a' ^ '123e5' ---
  370. string(8) "021c0704"
  371. --- testing: '3.4a' ^ '123e5xyz' ---
  372. string(8) "021c0704"
  373. --- testing: '3.4a' ^ ' 123abc' ---
  374. string(8) "131f0652"
  375. --- testing: '3.4a' ^ '123 abc' ---
  376. string(8) "021c0741"
  377. --- testing: '3.4a' ^ '123abc ' ---
  378. string(8) "021c0700"
  379. --- testing: '3.4a' ^ '3.4a' ---
  380. string(8) "00000000"
  381. --- testing: '3.4a' ^ 'a5.9' ---
  382. string(8) "521b1a58"
  383. --- testing: 'a5.9' ^ '0' ---
  384. string(2) "51"
  385. --- testing: 'a5.9' ^ '65' ---
  386. string(4) "5700"
  387. --- testing: 'a5.9' ^ '-44' ---
  388. string(6) "4c011a"
  389. --- testing: 'a5.9' ^ '1.2' ---
  390. string(6) "501b1c"
  391. --- testing: 'a5.9' ^ '-7.7' ---
  392. string(8) "4c02000e"
  393. --- testing: 'a5.9' ^ 'abc' ---
  394. string(6) "00574d"
  395. --- testing: 'a5.9' ^ '123abc' ---
  396. string(8) "50071d58"
  397. --- testing: 'a5.9' ^ '123e5' ---
  398. string(8) "50071d5c"
  399. --- testing: 'a5.9' ^ '123e5xyz' ---
  400. string(8) "50071d5c"
  401. --- testing: 'a5.9' ^ ' 123abc' ---
  402. string(8) "41041c0a"
  403. --- testing: 'a5.9' ^ '123 abc' ---
  404. string(8) "50071d19"
  405. --- testing: 'a5.9' ^ '123abc ' ---
  406. string(8) "50071d58"
  407. --- testing: 'a5.9' ^ '3.4a' ---
  408. string(8) "521b1a58"
  409. --- testing: 'a5.9' ^ 'a5.9' ---
  410. string(8) "00000000"
  411. ===DONE===