PHP 5.6.13-1~dotdeb+7.1 Linux/fpm-fcgi - Mon, 28 Sep 2015 08:03:16 UTC * TEST #1: Comparison of results intval() and casting to integer: # INPUT EXPECTED INTVAL() CAST RESULT ---------------------------------------------------------------------------- #0 42 : 42 / 42 / 42 pass. #1 -42 : -42 / -42 / -42 pass. #2 4.2000000000000002 : 4 / 4 / 4 pass. #3 '42' : 42 / 42 / 42 pass. #4 '+42' : 42 / 42 / 42 pass. #5 '-42' : -42 / -42 / -42 pass. #6 042 : 34 / 34 / 34 pass. #7 '042' : 42 / 42 / 42 pass. #8 1e10 : 1410065408 / 10000000000 / 10000000000 failed. #9 '1e10' : 1 / 1 / 1 pass. #10 0x1A : 26 / 26 / 26 pass. #11 42000000 : 42000000 / 42000000 / 42000000 pass. #12 2147483647 : 2147483647 / 2147483647 / 2147483647 pass. #13 2147483648 : -2147483648 / 2147483648 / 2147483648 failed. #14 420000000000000000000 : 0 / -4275113695319687168 / -4275113695319687168 failed. #15 '420000000000000000000' : 2147483647 / 9223372036854775807 / 9223372036854775807 failed. #16 array() : 0 / 0 / 0 pass. #17 array('foo', 'bar') : 1 / 1 / 1 pass. * TEST #2: Comparison of results intval() and 0 + $var: # INPUT EXPECTED INTVAL() 0+$VAR RESULT ---------------------------------------------------------------------------- #0 42 : 42 / 42 / 42 pass. #1 -42 : -42 / -42 / -42 pass. #2 4.2000000000000002 : 4 / 4 / 4.2 different. #3 '42' : 42 / 42 / 42 pass. #4 '+42' : 42 / 42 / 42 pass. #5 '-42' : -42 / -42 / -42 pass. #6 042 : 34 / 34 / 34 pass. #7 '042' : 42 / 42 / 42 pass. #8 1e10 : 1410065408 / 10000000000 / 10000000000 different. #9 '1e10' : 1 / 1 / 10000000000 different. #10 0x1A : 26 / 26 / 26 pass. #11 42000000 : 42000000 / 42000000 / 42000000 pass. #12 2147483647 : 2147483647 / 2147483647 / 2147483647 pass. #13 2147483648 : -2147483648 / 2147483648 / 2147483648 different. #14 420000000000000000000 : 0 / -4275113695319687168 / 4.2E+20 different. #15 '420000000000000000000' : 2147483647 / 9223372036854775807 / 4.2E+20 different. #16 array() : 0 / 0 / error. skipped. #17 array('foo', 'bar') : 1 / 1 / error. skipped. * TEST #3: abs((int)$val) vs. (int) abs($val) # INPUT ABS((INT)$val) (INT)ABS($val) RESULT ---------------------------------------------------------------------------- #0 42 : 42 / 42 pass. #1 -42 : 42 / 42 pass. #2 4.2000000000000002 : 4 / 4 pass. #3 '42' : 42 / 42 pass. #4 '+42' : 42 / 42 pass. #5 '-42' : 42 / 42 pass. #6 042 : 34 / 34 pass. #7 '042' : 42 / 42 pass. #8 1e10 : 10000000000 / 10000000000 pass. #9 '1e10' : 1 / 10000000000 different. #10 0x1A : 26 / 26 pass. #11 42000000 : 42000000 / 42000000 pass. #12 2147483647 : 2147483647 / 2147483647 pass. #13 2147483648 : 2147483648 / 2147483648 pass. #14 420000000000000000000 : 4275113695319687168 / -4275113695319687168 different. #15 '420000000000000000000' : 9223372036854775807 / -4275113695319687168 different. #16 array() : 0 / 0 pass. #17 array('foo', 'bar') : 1 / 0 different. * TEST #4: abs((int)$val) vs. absint($val) # INPUT ABS((INT)$val) ABSINT($val) RESULT ---------------------------------------------------------------------------- #0 42 : 42 / 42 pass. #1 -42 : 42 / 42 pass. #2 4.2000000000000002 : 4 / 4 pass. #3 '42' : 42 / 42 pass. #4 '+42' : 42 / 42 pass. #5 '-42' : 42 / 42 pass. #6 042 : 34 / 34 pass. #7 '042' : 42 / 42 pass. #8 1e10 : 10000000000 / 10000000000 pass. #9 '1e10' : 1 / 1 pass. #10 0x1A : 26 / 26 pass. #11 42000000 : 42000000 / 42000000 pass. #12 2147483647 : 2147483647 / 2147483647 pass. #13 2147483648 : 2147483648 / 2147483648 pass. #14 420000000000000000000 : 4275113695319687168 / 4275113695319687168 pass. #15 '420000000000000000000' : 9223372036854775807 / 9223372036854775807 pass. #16 array() : 0 / 0 pass. #17 array('foo', 'bar') : 1 / 1 pass. * TEST #5: Speed comparison (int)$val vs. intval($val) # INPUT (INT)$val INTVAL($val) RATIO ---------------------------------------------------------------------------- #0 42 : 0.019649 / 0.059026 300% #1 -42 : 0.019575 / 0.058570 299% #2 4.2000000000000002 : 0.023672 / 0.061527 259% #3 '42' : 0.038063 / 0.078756 206% #4 '+42' : 0.042797 / 0.099648 232% #5 '-42' : 0.037901 / 0.081272 214% #6 042 : 0.019567 / 0.058593 299% #7 '042' : 0.040407 / 0.081511 201% #8 1e10 : 0.023506 / 0.060819 258% #9 '1e10' : 0.037048 / 0.081524 220% #10 0x1A : 0.019569 / 0.058692 299% #11 42000000 : 0.019557 / 0.058904 301% #12 2147483647 : 0.019562 / 0.059947 306% #13 2147483648 : 0.019565 / 0.058593 299% #14 420000000000000000000 : 0.027979 / 0.066534 237% #15 '420000000000000000000' : 0.067321 / 0.112629 167% #16 array() : 0.037010 / 0.079433 214% #17 array('foo', 'bar') : 0.084682 / 0.128211 151% (100,000 iterations each) * TEST #6: Speed comparison settype() vs. intval() # INPUT SETTYPE() INTVAL($val) RATIO ---------------------------------------------------------------------------- #0 42 : 0.113645 / 0.062956 55% #1 -42 : 0.114424 / 0.062663 54% #2 4.2000000000000002 : 0.120346 / 0.067399 56% #3 '42' : 0.139429 / 0.085149 61% #4 '+42' : 0.141750 / 0.083533 58% #5 '-42' : 0.142304 / 0.087167 61% #6 042 : 0.116758 / 0.062508 53% #7 '042' : 0.139781 / 0.084500 60% #8 1e10 : 0.120739 / 0.067286 55% #9 '1e10' : 0.138382 / 0.092748 67% #10 0x1A : 0.117223 / 0.062275 53% #11 42000000 : 0.117057 / 0.063798 54% #12 2147483647 : 0.116104 / 0.062882 54% #13 2147483648 : 0.117497 / 0.062950 53% #14 420000000000000000000 : 0.127691 / 0.070131 54% #15 '420000000000000000000' : 0.169796 / 0.112777 66% #16 array() : 0.139835 / 0.084739 60% #17 array('foo', 'bar') : 0.202484 / 0.136293 67% (100,000 iterations each) * TEST #7: Speed comparison abs((int)$val) vs. absint($val) # INPUT ABS((INT)$val) ABSINT($val) RATIO ---------------------------------------------------------------------------- #0 42 : 0.066307 / 0.150921 227% #1 -42 : 0.065941 / 0.151420 229% #2 4.2000000000000002 : 0.074758 / 0.158738 212% #3 '42' : 0.090069 / 0.170474 189% #4 '+42' : 0.090440 / 0.174109 192% #5 '-42' : 0.091308 / 0.177312 194% #6 042 : 0.067929 / 0.156206 229% #7 '042' : 0.091375 / 0.172765 189% #8 1e10 : 0.073454 / 0.160775 218% #9 '1e10' : 0.089249 / 0.172793 193% #10 0x1A : 0.067119 / 0.151738 226% #11 42000000 : 0.068211 / 0.154813 226% #12 2147483647 : 0.067085 / 0.154339 230% #13 2147483648 : 0.066594 / 0.151623 227% #14 420000000000000000000 : 0.077881 / 0.160110 205% #15 '420000000000000000000' : 0.118928 / 0.201531 169% #16 array() : 0.088283 / 0.179643 203% #17 array('foo', 'bar') : 0.137562 / 0.236615 172% (100,000 iterations each) * TEST #8: Speed comparison (int)$val vs. 0 + $val # INPUT (INT)$val 0+$val RATIO ---------------------------------------------------------------------------- #0 42 : 0.019557 / 0.018661 95% #1 -42 : 0.019557 / 0.018655 95% #2 4.2000000000000002 : 0.023710 / 0.023309 98% #3 '42' : 0.045843 / 0.040522 88% #4 '+42' : 0.038204 / 0.041213 107% #5 '-42' : 0.038062 / 0.041229 108% #6 042 : 0.019555 / 0.018667 95% #7 '042' : 0.039899 / 0.044523 111% #8 1e10 : 0.023840 / 0.019164 80% #9 '1e10' : 0.038167 / 0.039795 104% #10 0x1A : 0.019552 / 0.018659 95% #11 42000000 : 0.019559 / 0.018670 95% #12 2147483647 : 0.019544 / 0.018674 95% #13 2147483648 : 0.019572 / 0.018669 95% #14 420000000000000000000 : 0.027924 / 0.019164 68% #15 '420000000000000000000' : 0.066800 / 0.153175 229% #16 array() : skipped. #17 array('foo', 'bar') : skipped. (100,000 iterations each)