У меня вопрос: в чем разница между: $value !=''
и !isset($value)
?
Сравните 2 разных условия с одной и той же идеей
Ответы (3)
Основное различие в практическом использовании между $value != ''
и !isset($value)
заключается в том, что вы можете использовать isset()
следующим образом:
if(!isset($value)){
echo '$value is not declared or is equal to null';
}
Если $value
на самом деле не установлен, вы не получите уведомления с isset()
. Если бы вы сделали что-то вроде этого:
if($value != ''){
echo $value." is not equal to nothing";
}
Если $value
не установлен, это вызовет уведомление в PHP, объясняющее, что $value
еще не объявлен.
Следует отметить, что isset()
проверит, что переменная была объявлена, но не будет проверять, что она не равна ''
.
А как насчет empty()
?
Другой частью головоломки здесь является empty()
, который проверяет, объявлена ли переменная и не равна ли ''
. Вы можете сделать что-то вроде этого:
if(!empty($value)){
echo 'We know that $value is declared and not equal to nothing.';
}
что было бы то же самое, что сделать это:
if(isset($value) && $value != ''){
echo 'We know that $value is declared and not equal to nothing.';
}
Дополнительная литература:
isset()
- Документы PHP
empty()
- Документы PHP
isset, пустые проверки - аналогичный вопрос
Зачем проверять как isset, так и пусто?
Все эти примеры работают в PHP 5.3+
$variable != ''
просто проверяет переменную на пустое строковое значение (или null, потому что '' == null
), если переменная не определена, будет показано уведомление.
!isset($variable)
проверяет, определена ли переменная, и если она не верна, ошибки / уведомления отображаться не будут.
Но имейте в виду, что isset
может вернуть false, даже если переменная определена.
$variable = null;
var_dump(isset($variable)); // prints false
Чтобы проверить, действительно ли переменная определена в текущей области, используйте 'array_key_exists' с 'get_defined_vars'
$variable = null;
var_dump(array_key_exists('value', get_defined_vars())); // prints true
isset () сообщит вам о существовании переменной, а не
NULL
.empty () может рассказать вам как о существовании переменной, так и о ее значении.
Ex.
$var1 = "";
echo isset($var1);
Выход: - правда
Итак, чтобы проверить, установлена ли переменная, используйте isset()
, а если вы хотите проверить, не было ли значение переменной нулевым / пустым, используйте empty()
.
$value != ''
означает, что вы проверяете, не является ли $value
пустой строкой.
!isset($value)
определить, не установлена ли переменная $value
и равна ли она NULL
Прочтите эти ссылки для получения дополнительной информации о isset
& empty
В чем разница между isset () и! empty ( ) 'в PHP?
http://php.net/manual/en/function.isset.php
http://php.net/manual/en/types.comparisons.php
$value != ''
и !empty($value)
?
- person Harea Costicla; 19.05.2016
empty($value)
Определить, является ли переменная $value
(любого типа) пустой, а $value != ''
относится к string
- person Hirdesh Vishwdewa; 19.05.2016
$value != ''
может вернуть уведомление, если$value
не был объявлен.!isset($value)
не вернет уведомление. - person Henders   schedule 19.05.2016$value
, используйтеisset()
, потому что он для этого. Это не значит, что это что-то иное, чем заявленное. - person Henders   schedule 19.05.2016