Da, nisi pogrešno razumio, ja sam se pogrešno izrazio...
PHP kôd:
$a = '4e1';
var_dump(ctype_digit($a)); # bool(false)
Je očekivani rezultat, ja ne mogu da zamislim situaciju da se prosledi 4e1 (int bez navodnika), iz baze ili $_REQUEST ili šta ja znam... tako da će se ova funkcija "normalno" ponašati u svakom real life slučaju...
Da se nadovežem, to jednostavno tako funkcioniše i mislim da nije u pitanju bug...
PHP kôd:
$a = 0xFF;
echo (string) $a; # 255
Sve so to validne reprezentacije integera
http://php.net/manual/en/language.types.integer.php