Задать вопрос
@therealvetalhidden

Как правильно проверять переменную в php?

В каких случаях и вообще стоит ли проверять переменную в таком виде?
if ($var) {}
if (!$var) {}

Ведь если переменная не инициализирована то возникает ошибка
  • Вопрос задан
  • 427 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
if ($var) {}
if (!$var) {}


Это если true или если false.
Если в $var будет ноль - первое условие уже не сработает. Поэтому так лучше не проверять.
Проверяйте так:

if ( isset($var) && $var == 'нужное значение') {
     //что-то делаем
}
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Аналогом
if ($var)
для случая, когда переменная может быть не инициализирована, является
if (!empty($var))

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

Update.
Мда. Полез поискать тебе ответ для случая, когда 0 считается не пустым значением.

Если бы тогда пассажир по фамилии KorsaR-ZN написал тебе не феерически бредовую отсебятину,
empty - проверят именно на пустоту переменной, т.е возвращает true если переменная является пустой и false в противоположном случаи.

а объяснил, что
!empty($var)
всего-навсего является короткой записью
if (isset($var) && $var))
то сейчас у тебя вопроса не возникло бы.

Это к вопросу о том, почему давать плохие ответы плохо (для автора) но хорошо (для посещаемости). И объясняет, почему администрация специально разводит на сайте лохов.
Ответ написан
Daniss74
@Daniss74
Занимаюсь Битрикс24
Отличия между if($var) и if(isset($var)):
if($var) - проверка на "truthiness"

Возвращает false если переменная:

не существует (undefined)
null
false
0 или "0"
пустая строка ""
пустой массив []

if(isset($var)) - проверка существования

Возвращает true если переменная:

существует И не равна null
может быть false, 0, "" - но будет true
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы