#php
#php
Вопрос:
Как мне написать условие if, которое будет оценивать ноль как не пустой? Я пишу сценарий проверки, и если поле пустое, я выдаю ошибку. В случае выбора с числовыми значениями, начинающимися с 0 (нуля), это не должно считаться пустым. В руководстве указано, что строка 0 считается пустой и возвращает false . Если я изменю empty на !isset , ноль будет работать, но другие текстовые поля, которые действительно пусты, пройдут проверку. Как мне написать это, чтобы обработать мой случай?
Комментарии:
1. Почему бы сначала не выполнить сравнение строк?
$test == "0"
?2.
if($value !== 0 )
, потому что(false == 0)
это true. ноfalse === 0
это неверно3. Длина строки «0» равна… (то есть задайте PHP другой вопрос)
Ответ №1:
if (strlen($x)) {
// win o/ (not empty)
}
Удачного кодирования.
(Все содержимое текстового поля / формы ввода по сути является просто текстом. Любое значение в виде числового значения приходит позже, и каждое представление может быть проверено. 0 принудительно возвращается к «0» в strlen
.)
Комментарии:
1. @pst.. Я только что попробовал strlen, но ноль сообщается как длина «0». Этого не должно быть, хотя верно?
2. @jim See codepad.viper-7.com/6hVirM — «работает здесь». Возможно, действительно нет 0?
3. Хорошо, спасибо за это, мой друг.. У меня должна быть проблема где-то в другом месте. Спасибо за помощь и подсказку задать другой вопрос. 🙂
Ответ №2:
Рассматривали ли вы возможность использования is_null()?
if (is_null($value) || $value === "") {}
if (empty($value) amp;amp; $value !== 0)
Комментарии:
1. Чарльз.. То, что я получаю с помощью is_null, — это точно такое же поведение, которое дает мне !isset. Пустые входные данные теперь проходят проверку, когда они не должны
2. Чарльз, вот что я получаю с помощью is_null:
string(5) "aaaaa" string(0) "" string(0) "" string(0) "" string(0) "" string(4) "2222" string(5) "test1" string(0) "" string(1) "2"
Ответ №3:
if(!is_numeric($var) amp;amp; empty($var))
{
// empty
}
else
{
// not empty
}