I've found that both that is_int and ctype_digit don't behave quite as I'd expect, so I made a simple function called isInteger which does. I hope somebody finds it useful.
<?php
function isInteger($input){
return(ctype_digit(strval($input)));
}
var_dump(is_int(23)); var_dump(is_int("23")); var_dump(is_int(23.5)); var_dump(is_int(NULL)); var_dump(is_int("")); var_dump(ctype_digit(23)); var_dump(ctype_digit("23")); var_dump(ctype_digit(23.5)); var_dump(ctype_digit(NULL)); var_dump(ctype_digit("")); var_dump(isInteger(23)); var_dump(isInteger("23")); var_dump(isInteger(23.5)); var_dump(isInteger(NULL)); var_dump(isInteger("")); ?>