#php #filter-var
#php #filter-var
Вопрос:
мне пришлось проверить переменную, которая должна иметь логическое значение либо 1, либо 0. я попытался использовать filter_var (), проблема с функцией в том, что если она получает 0 в качестве входных данных, она возвращает false, разве 0 не считается логическим значением? если да, то почему функция возвращает false?
следующее условие возвращается true
filter_var(1, FILTER_VALIDATE_BOOLEAN);
тогда как, если я использую 0 в качестве входных данных, он вернет false
filter_var(0, FILTER_VALIDATE_BOOLEAN);
Ответ №1:
Согласно http://www.php.net/manual/en/filter.filters.validate.php:
FILTER_VALIDATE_BOOLEAN
Возвращает
TRUE
для"1"
,"true"
,"on"
и"yes"
. ВозвращаетFALSE
в противном случае.
Если вы хотите различать между FALSE
значением и FALSE
указанием сбоя, тогда вам нужно использовать FILTER_NULL_ON_FAILURE
флаг.
Ответ №2:
Потому что ноль имеет логическое значение false?
Комментарии:
1. Похоже, вы действительно не понимаете, что такое логическое значение, или вы не читали руководство, объясняющее функцию. Я предлагаю перейти к php.net/manual/en/filter.filters.validate.php и чтение того, что на самом деле предлагает функция.