Я также путаюсь, как проверить, является ли переменная false/null при возврате из функции.
Когда использовать empty() и когда использовать isset() для проверки условия?
Я также путаюсь, как проверить, является ли переменная false/null при возврате из функции.
Когда использовать empty() и когда использовать isset() для проверки условия?
Для возврата из функций вы не используете ни isset
, ни empty
, поскольку они работают только с переменными и просто проверяются на наличие несуществующих переменных без возникновения ошибок.
Для проверки функций для существования переменных бесполезно, так что просто:
if (!my_function()) {
// function returned a falsey value
}
Подробнее об этом см. Окончательное руководство по PHP isset И пустое.
Проверка переменной (несколько примеров)
if(is_null($x) === true) // null
if($x === null) // null
if($x === false)
if(isset($x) === false) // variable undefined or null
if(empty($x) === true) // check if variable is empty (length of 0)
Isset() проверяет, имеет ли переменная значение, включая (False, 0 или Empty string), но не NULL. Возвращает TRUE, если var существует; FALSE в противном случае.
С другой стороны, функция empty() проверяет, имеет ли пустая строка пустая строка, 0, NULL или False. Возвращает FALSE, если var имеет непустое и ненулевое значение.
ISSET
проверяет переменную, чтобы увидеть, была ли она установлена, другими словами, она проверяет, есть ли переменная какое-либо значение, кроме NULL
или not assigned a value
. ISSET возвращает TRUE, если переменная существует и имеет значение, отличное от NULL. Это означает, что переменные, назначенные ", 0," 0" или FALSE, установлены и, следовательно, TRUE для ISSET.
EMPTY
проверяет, пуста ли переменная. Пустой интерпретируется как: "(пустая строка), 0 (0 как целое число), 0.0 (0 в виде float)," 0 "(0 в виде строки), NULL, FALSE, array() (пустой массив ) и" $var;" (переменная объявлена, но без значения в классе.
empty() является злом. Он медленный, и когда $v queals false, 0, '0', array(), '', он вернет true.if вам нужно это вид проверки, вы можете использовать if ($ v).
isset - определить, установлена ли переменная и не является NULL
$a = "test";
$b = "anothertest";
var_dump(isset($a)); // TRUE
var_dump(isset($a, $b)); // TRUE
unset ($a);
var_dump(isset($a)); // FALSE
empty - определить, пуста ли переменная
<?php
$var = 0;
// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}
// Evaluates as true because $var is set
if (isset($var)) {
echo '$var is set even though it is empty';
}
?>