2015-03-18 2 views
1

Я пишу интерфейс 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 (), когда значение может быть целым или плавающим?

ответ

0

Для того, чтобы позволить использовать нулевые значения === FALSE (т.е. строго равным ложь):

if (filter_var(...) === FALSE) 
{ 
    throw new Exception('WIND (wind) WRONG VALUE TYPE [received '.$params['wind'].'].'); 
} 
Смежные вопросы