Если на входе есть строка, которая может содержать целое число или число с плавающей точкой и нужно эту строку привести к нужному состоянию, то можно сделать так:
if (is_numeric($string)) { if ((int)$string == $string) { $string = (int)$string; } else { $string = (float)$string; } }
Функция is_numeric проверяет, является ли переменная числом или строкой, содержащей число (ни is_int, ни is_float не делают вторую часть проверки и при получении строки на входе возвращают false). Далее приводим строку к целому числу и делаем нестрогое сравнение, чтобы убедиться, что перед нами действительно целое число.