Как проверить переменную (empty | isset)

Доброго времени суток, дорогой читатель! Не в редких ситуациях, я бы даже сказал в очень частых, есть острая необходимость проверить переменную на пустоту или на ее существование, то есть, есть ли значение у какой-то переменной, возможно, надо проверить переменную на «отрицательное» значение, например «false», «null» или «0». Для этого есть две функции, о которых я сейчас вкратце расскажу, для чего и как пользоваться.

И так, давайте начнем с функции «isset» — предназначение данной функции проверить существование указанной переменной. Если у проверяемой переменной есть значение (то есть переменная существует), функция вернет «true», если нет, вернет «false». Значение может быть любым, в том числе и «отрицательным» — «false», «0» и так далее. Кроме «null», с null «isset» вернет «false».

Функция «empty» тоже выполняет проверку переменной, но она выполняет проверку переменной на пустоту. И в отличии от «isset», она вернет «true», если значения нет (переменная не существует) или оно «отрицательное», и вернет «false» если значение есть и оно «положительное» — «true», «1» и так далее. Это не единственное, но, пожалуй, главное отличие этих двух функций.

В языке PHP «пустой переменной» будет считаться не только та, что неопределенна, но и со следующими значениями: «», «0», «0.0», «’0’», «null», «false» и «array()» (пустой массив). В отличии от неопределенной переменной, переменные с этими значениями не будут ошибочными (об ошибке чуть ниже).

Приведу пару примеров, как пользоваться функциями. Проверяем, имеет ли переменная значение:

Как отработает код из примера: функция «isset» вернет «true», так как переменная «$val» существует и ее значение не равняется «null». Функция «empty» вернет «false», так как переменная не пустая. Если удалить первую строку кода, функции отработают наоборот – «isset» вернет «false», «empty» вернет «true».

Известно, что в условии может быть всего одна переменная, без каких-то функций и так она будет проверяться, как булевое значение:

Такая проверка вполне корректна, код внутри условия выполняется, если «$val» равняется «true». Но так следует проверять переменную, только в том случае, если переменная обязательно имеет, какое-то значение, если значение назначено не было, выйдет ошибка – «неопределенная переменная». Если при проверке, переменная может быть неопределенна, то используйте одну из двух функций (empty | isset), в зависимости от требования от выполняемой операции.

Не смотря на то, что при проверке переменной, ожидаем, что переменная должна быть определена, есть случаи, когда надо использовать функцию не «isset», а «empty». Например, при получении значений с полей, методом «POST». Допустим, нам необходимо проверить полученные с формы данные, которые вводил пользователь, проверяем необязательное поле (можно вводить, можно не вводить), если пользователь ввел, выполняем, какую-то операцию. Тут проверка:

Не подойдет к работе корректно, так как значение полей передается всегда, даже тогда, когда они не заполнены. Тут следует использовать функцию «empty» со знаком отрицания «!»:

Теперь проверка будет осуществляться корректно – если поле осталось пустым, значит, ни каких дополнительных действий, если что-то ввели, то код внутри условия будет выполнен.

На этом у меня все. Надеюсь, мой пост оказался вам полезен. Если вам есть, что добавить или остались вопросы, пожалуйста, пишите комментарий.
Спасибо за внимание!

Запись опубликована автором в рубрике PHP.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *