В чем разница между «isset ()» и «! Empty ()» в PHP?

Я не понимаю разницы между isset() и !empty() .

Потому что, если переменная была установлена, не так ли она не пустой?

ISSET проверяет переменную, чтобы увидеть, была ли она установлена. Другими словами, он проверяет, есть ли переменная какое-либо значение, кроме NULL или не присвоенное значение. ISSET возвращает TRUE если переменная существует и имеет значение, отличное от NULL. Это означает, что переменные, назначенные «», 0, «0» или «ЛОЖЬ», установлены и, следовательно, TRUE для ISSET .

EMPTY проверяет, пуста ли переменная. Пустой интерпретируется как: «" (пустая строка), 0 (целое число), 0.0 (float) `," 0 "(строка), NULL, FALSE, array () (пустой массив) и" $ var; " (объявленная переменная, но без значения в классе.

Для получения дополнительной информации см. Эту статью

Источник: http: //php.net/manual/en/types.comparisons.php На этой странице показано сравнение empty() , is_null() , isset() .

Изображение, показывающее полное сравнение здесь

Таблицы сравнения типов дают ответ на все вопросы об этих операторах

http://php.net/manual/en/types.comparisons.php

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

!empty – Определяет, является ли переменная НЕ пустой.

Isset возвращает false, если переменная не была установлена, или она равна null, и возвращает true, если переменная установлена, а не null.

! empty возвращает true, если переменная установлена ​​и не пуста. Пустая строка, пустой массив, «0», 0 и false определены как пустые.

И еще одно замечание. empty() проверяет, существует ли переменная. Т.е. если мы выполним empty() для переменной, которая не была объявлена, мы не получим ошибку, empty() возвращает 'true'. Поэтому мы можем избежать isset() если в следующий раз нам нужно проверить, является ли переменная пустой.

Так

 isset($var) && !empty($var) 

будет равняться

 !empty($var)