PHP 5.2.8 WINNT/cgi-fcgi - Thu, 13 May 2010 18:21:30 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.2 : 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 / 1410065408 / 1410065408 pass. #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 pass. #14 420000000000000000000 : 0 / 0 / 0 pass. #15 '420000000000000000000' : 2147483647 / 2147483647 / 2147483647 pass. #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.2 : 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 / 1410065408 / 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 / 0 / 4.2E+20 different. #15 '420000000000000000000' : 2147483647 / 2147483647 / 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.2 : 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 : 1410065408 / 1410065408 pass. #9 '1e10' : 1 / 1410065408 different. #10 0x1A : 26 / 26 pass. #11 42000000 : 42000000 / 42000000 pass. #12 2147483647 : 2147483647 / 2147483647 pass. #13 2147483648 : 2147483648 / -2147483648 different. #14 420000000000000000000 : 0 / 0 pass. #15 '420000000000000000000' : 2147483647 / 0 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.2 : 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 : 1410065408 / 1410065408 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 : 0 / 0 pass. #15 '420000000000000000000' : 2147483647 / 2147483647 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.068531 / 0.445955 650% #1 -42 : 0.068863 / 0.446388 648% #2 4.2 : 0.072758 / 0.449126 617% #3 '42' : 0.086933 / 0.464962 534% #4 '+42' : 0.087169 / 0.463181 531% #5 '-42' : 0.089214 / 0.465880 522% #6 042 : 0.068227 / 0.447947 656% #7 '042' : 0.088857 / 0.465882 524% #8 1e10 : 0.074094 / 0.448731 605% #9 '1e10' : 0.087176 / 0.468136 537% #10 0x1A : 0.068299 / 0.447120 654% #11 42000000 : 0.068359 / 0.447036 653% #12 2147483647 : 0.068273 / 0.448620 657% #13 2147483648 : 0.071404 / 0.447979 627% #14 420000000000000000000 : 0.086527 / 0.467634 540% #15 '420000000000000000000' : 0.104503 / 0.484826 463% #16 array() : 0.093761 / 0.471174 502% #17 array('foo', 'bar') : 0.112711 / 0.490393 435% (100,000 iterations each) * TEST #6: Speed comparison settype() vs. intval() # INPUT SETTYPE() INTVAL($val) RATIO ---------------------------------------------------------------------------- #0 42 : 0.530842 / 0.478949 90% #1 -42 : 0.528936 / 0.478512 90% #2 4.2 : 0.533964 / 0.479770 89% #3 '42' : 0.545697 / 0.502012 91% #4 '+42' : 0.545141 / 0.500717 91% #5 '-42' : 0.545632 / 0.501436 91% #6 042 : 0.530098 / 0.479329 90% #7 '042' : 0.546104 / 0.502348 91% #8 1e10 : 0.535492 / 0.479252 89% #9 '1e10' : 0.546370 / 0.500743 91% #10 0x1A : 0.530768 / 0.481943 90% #11 42000000 : 0.531165 / 0.478973 90% #12 2147483647 : 0.531576 / 0.479957 90% #13 2147483648 : 0.535066 / 0.480430 89% #14 420000000000000000000 : 0.552697 / 0.499978 90% #15 '420000000000000000000' : 0.563893 / 0.517998 91% #16 array() : 0.563592 / 0.506493 89% #17 array('foo', 'bar') : 0.577184 / 0.526616 91% (100,000 iterations each) * TEST #7: Speed comparison abs((int)$val) vs. absint($val) # INPUT ABS((INT)$val) ABSINT($val) RATIO ---------------------------------------------------------------------------- #0 42 : 0.447576 / 1.324572 295% #1 -42 : 0.446990 / 1.325007 296% #2 4.2 : 0.449757 / 1.333960 296% #3 '42' : 0.473430 / 1.361093 287% #4 '+42' : 0.473999 / 1.353424 285% #5 '-42' : 0.476102 / 1.355358 284% #6 042 : 0.446113 / 1.326202 297% #7 '042' : 0.472725 / 1.358631 287% #8 1e10 : 0.448930 / 1.330402 296% #9 '1e10' : 0.472177 / 1.350635 286% #10 0x1A : 0.447519 / 1.330095 297% #11 42000000 : 0.445957 / 1.327818 297% #12 2147483647 : 0.447755 / 1.327592 296% #13 2147483648 : 0.449165 / 1.332451 296% #14 420000000000000000000 : 0.470842 / 1.356022 287% #15 '420000000000000000000' : 0.494770 / 1.433566 289% #16 array() : 0.475205 / 1.355724 285% #17 array('foo', 'bar') : 0.497341 / 1.382380 277% (100,000 iterations each) * TEST #8: Speed comparison (int)$val vs. 0 + $val # INPUT (INT)$val 0+$val RATIO ---------------------------------------------------------------------------- #0 42 : 0.069906 / 0.069639 99% #1 -42 : 0.068933 / 0.069556 100% #2 4.2 : 0.072000 / 0.070016 97% #3 '42' : 0.087340 / 0.078537 89% #4 '+42' : 0.087211 / 0.076825 88% #5 '-42' : 0.089179 / 0.076712 86% #6 042 : 0.069071 / 0.071048 102% #7 '042' : 0.088449 / 0.077099 87% #8 1e10 : 0.071891 / 0.069925 97% #9 '1e10' : 0.086967 / 0.082473 94% #10 0x1A : 0.070353 / 0.069477 98% #11 42000000 : 0.068773 / 0.069724 101% #12 2147483647 : 0.068785 / 0.070474 102% #13 2147483648 : 0.072288 / 0.071546 98% #14 420000000000000000000 : 0.087072 / 0.069884 80% #15 '420000000000000000000' : 0.103028 / 0.216759 210% #16 array() : skipped. #17 array('foo', 'bar') : skipped. (100,000 iterations each)