mmm, per questo tipo di controlli si può usare un piccolo artifizio

Codice PHP:
if ((string)((int)$variabile) != $variabile)
{
    
// non è un numero

con questo semplice giochino la variabile prima si trasforma in numero e poi in stringa riconfrontandola con il valore di partenza

se sono diversi vuol dire che non era un numero oppure che dopo il valore numero erano presenti altri dati non ammessi

alternativamente un is_numeric potrebbe andare pure bene