Есть ли функция для проверки как
if (isset($var) && $var)
?
Есть ли функция для проверки как
if (isset($var) && $var)
?
Функция empty()
будет выполнять эту работу.
Используйте его с оператором not (!
), чтобы проверить "если не пусто", т.е.
if(!empty($var)){
}
там вы идете. это должно сделать это.
if (isset($var) && $var)
if (! empty($var))
Кажется, что @phihag и @steveo225 верны.
Определите, считается ли переменная пустой. Переменная считается пустым, если он не существует или его значение равно
FALSE
.empty()
не генерирует предупреждение, если переменная не существует.Предупреждение не генерируется, если переменная не существует. Это значит
empty()
по существу является кратким эквивалентом!isset($var) || $var
== false
.
Итак, кажется, что !empty($var)
будет эквивалентным isset() && $var == true
.
Не знаю, существует ли уже один, но вы можете легко написать настраиваемую функцию, чтобы справиться с этим.
function isset_and_true($var) {
return (isset($var) && $var == true) ? true : false;
}
if (isset_and_true($a)) {
print "It set!";
}
Попробуйте выполнить функцию empty
:
http://us2.php.net/empty
isset($a{0})
isset И len не 0 кажется более надежным для меня, если вы запустите следующее:
<?php
$a=$_REQUEST['a'];
if (isset($a{0})) { // Returns "It 0!!" when test.php?a=0
//if (!empty($a)) { // Returns "It empty!!" when test.php?a=0
echo 'It\ '.$a;
} else { echo 'It\ empty'; }
?>
Вы можете использовать оператор как таковой:
if($var ?? false){
...
}
Что это значит, проверяется, установлено ли значение $var
и сохраняет значение. Если нет, выражение оценивается как второй параметр, в данном случае false
, но может использоваться другими способами, такими как:
// $a is not set
$b = 16;
echo $a ?? 2; // outputs 2
echo $a ?? $b ?? 7; // outputs 16
Подробнее здесь: https://lornajane.net/posts/2015/new-in-php-7-null-coalesce-operator
$a = new stdClass;
$a->var_false = false;
$a->var_true = true;
if ($a->notSetVar ?? false) {
echo 'not_set';
}
if ($a->var_true ?? false) {
echo 'var_true';
}
if ($a->var_false ?? false) {
echo 'var_false';
}
Проверьте, установлена ли переменная, и true. Игнорировать предупреждающее сообщение
if(@!empty($foo))