Просто когда привыкаешь и в целом, повышаешь собственное качество — начинаешь писать МАКСИМАЛЬНО ТУПО И ПРОСТО, чтобы самому не путаться и не ошибаться, оставляя всякие типовые и прочие проверки для пользовательского взаимодействия, чтобы юзер (или ты сам через пару месяцев) не дай бог не ушибся при дёрганьи вывешенных наружу функций. Там проверок обычно не так много, можно уж расщедриться на ctype(foo, "number")
.