Все врут. И документация php тоже.

Обнаружил “странный” код, который судя по офф. документации работать так как ожидал автор не должен:

$filtered = filter_var($raw, FILTER_VALIDATE_INT,  array('flags' => FILTER_NULL_ON_FAILURE));

В документации флаг FILTER_NULL_ON_FAILURE указан только для фильтра FILTER_VALIDATE_BOOLEAN. Странно конечно, но это не единственная странность в php вообще и в filter в частности. Документированная странность… Однако код работает именно так, как ожидал автор – возвращает null если $raw не прошёл валидацию. И не только для INT – STRING, FLOAT… IP. В общем все проверенные фильтры возвращают нулл_он_файлуре.

Ну ок, значит автор не совсем… Но возможно что-то поправили в свежих версиях php и забыли обновить документацию? Может расчитывать на такое поведение не стоит? Оказывается это работает минимум с версии 5.2.1.

Не доверяй и проверяй…

FILTER_NULL_ON_FAILURE
Tagged on:     

Leave a Reply