Я пишу интерфейс REST с PHP для отправки и запроса данных, поступающих с метеостанции. Величины скорости ветра/температуры/etc поступают через POST-запрос как float (например, 1.32) , если не равны нулю, и в этом случае отправляется одиночная цифра «0».
Я написал следующий код для проверки вводимых значений:
if (is_numeric($params['wind']))
{
if (!filter_var($params['wind'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION, $windLimit))
{
throw new Exception('WIND (wind) WRONG VALUE TYPE [received '.$params['wind'].'].');
}
}
else
{
throw new Exception('WIND (wind) WRONG TYPE [received '.$params['wind'].'].');
}
, который хорошо работает для ненулевых значений, но не пройдет проверку, когда именно 0. Есть ли конкретный фильтр для использования в filter_var (), когда значение может быть целым или плавающим?