PHP empty() и isset() - проверить что переменная установлена и что не пуста - отличия (какая разница)

  • empty() в случае если переменная не установлена (не существует) посчитает её пустой - предупреждения выведены не будут - то есть несуществующие переменные можно смело передавать в empty()
  • isset() выполняет проверку только на то установлена/не установлена переменная, но не на пустоту (передавать несуществующие переменные тем более можно)

При этом :

Следующие значения воспринимаются как пустые:

  • "" (пустая строка)
  • 0 (целое число)
  • 0.0 (дробное число)
  • "0" (строка)
  • NULL
  • FALSE
  • array() (пустой массив)
  • $var; (переменная объявлена, но не имеет значения)

Из комментариев на php.net:

empty() is the opposite of (boolean) var, except that no warning

также из рус. документации:

[empty()] Проверяет, считается ли переменная пустой. Переменная считается пустой, если она не существует или её значение равно FALSE. empty() не генерирует предупреждение если переменная не существует.

Для пробы запустите код:

/*просто попытаемся проверить на пустоту
 ранее не встречающуюся в коде переменную*/
if (empty($qwerwe)) {
	echo ('$qwerwe is empty and may isnt set ! (no warning will be shown in both cases)');
}

Key Words for FKN + antitotal forum (CS VSU):