Это зависит от того, что вы ищете, если вы просто хотите увидеть, пусто ли оно, просто используйте, emptyкогда он проверяет, установлен ли он, если вы хотите знать, установлено ли что-то или не используется isset.
Empty проверяет, установлена ли переменная, и если это так, проверяет ее на null, "", 0 и т. д.
Isset просто проверяет, установлен ли он, это может быть что угодно, кроме нуля
С emptyпустыми считаются следующие объекты:
- "" (пустая строка)
- 0 (0 как целое число)
- 0,0 (0 в виде числа с плавающей точкой)
- «0» (0 в виде строки)
- НОЛЬ
- ЛОЖНЫЙ
- array () (пустой массив)
- var $ var; (объявленная переменная, но без значения в классе)
С http://php.net/manual/en/function.empty.php
Как упоминалось в комментариях, отсутствие предупреждения также важно с empty ()
Руководство по PHP говорит
empty () является противоположностью (boolean) var, за исключением того, что предупреждение не генерируется, если переменная не установлена .
Что касается isset
Руководство по PHP говорит
isset () вернет FALSE, если проверяет переменную, для которой установлено значение NULL
Ваш код будет в порядке:
<?php
$var = '23';
if (!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Например:
$var = "";
if(empty($var)) // true because "" is considered empty
{...}
if(isset($var)) //true because var is set
{...}
if(empty($otherVar)) //true because $otherVar is null
{...}
if(isset($otherVar)) //false because $otherVar is not set
{...}