isset() возвращает только true

Я пытаюсь создать проверки в PHP, чтобы проверить, пусты ли поля или нет.

Но мой isset возвращает только true, когда я использую

var_dump(isset($_POST['name']));

Он не возвращает false ни при каких условиях, которые не проверяют мои формы должным образом.


person harsimarriar96    schedule 11.07.2014    source источник
comment
ты можешь попробовать использовать isempty() это может решить твою проблему   -  person Mohit Shrivastava    schedule 11.07.2014
comment
isset возвращает true для всех $_POST переменных или только для одной? Возвращает ли он true везде в вашем коде?   -  person Max    schedule 11.07.2014
comment
isset() вернет true, если $_POST['name'] существует, даже если он пуст... вы уверены, что не отправляете данные с именем name?   -  person Oliboy50    schedule 11.07.2014
comment
Вместо этого вам, вероятно, следует использовать isset($_POST['name']) && strlen($_POST['name'])).   -  person Ja͢ck    schedule 11.07.2014


Ответы (2)


PHP имеет различные функции, которые можно использовать для проверки значения переменной. Три полезные функции для этого: isset(), empty() и is_null(). Все эти функции возвращают логическое значение. Если эти функции используются неправильно, они могут привести к неожиданным результатам.

isset() и empty() часто рассматриваются как противоположные функции, однако это не всегда так. В этом посте я объясню различия между этими функциями.

isset()

isset — Определить, установлена ​​ли переменная и не является ли она NULL

Другими словами, он возвращает true только тогда, когда переменная отлична от null.

empty()

empty — Определить, является ли переменная пустой

Другими словами, он вернет true, если переменная представляет собой пустую строку, false, array(), NULL, «0?», 0 и неустановленную переменную.

is_null()

is_null — Определяет, является ли переменная NULL

Другими словами, он возвращает true только тогда, когда переменная имеет значение null. is_null() является противоположностью isset(), за исключением того, что isset() может применяться к неизвестным переменным, а is_null() только к объявленным переменным.

person Mohit Shrivastava    schedule 11.07.2014
comment
Спасибо мне очень помогло - person harsimarriar96; 11.07.2014
comment
Всегда приятно @harsimarriar96 :) - person Mohit Shrivastava; 11.07.2014

Пустая строка является заданной строкой. Это не одно и то же, вам также нужно проверить длину строки или пуста она или нет

person dhalfageme    schedule 11.07.2014
comment
В оптимальном случае if( empty($_POST['name'])) будет совмещать работу if( isset($_POST['name']) && $_POST['name']) - person Niet the Dark Absol; 11.07.2014