PHP проверить, если False или Null
Я также запутался, как проверить, является ли переменная false / null при возврате из функции.
когда использовать empty () и когда использовать isset () для проверки условия ?
6 ответов
для возврата из функций вы не используете ни isset
, ни empty
, поскольку они работают только с переменными и просто тестируются на возможные несуществующие переменные без запуска ошибок.
для функции возвращает проверку на наличие переменных бессмысленно, поэтому просто сделайте:
if (!my_function()) {
// function returned a falsey value
}
подробнее об этом читайте в разделе окончательное руководство по isset PHP и пустой.
проверка переменной ( несколько примеров )
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 или пустую строку), но не NULL. Возвращает TRUE, если var существует; FALSE в противном случае.
с другой стороны , функция empty() проверяет, имеет ли переменная пустое значение empty string ,0, NULL или False. Возвращает FALSE, если var имеет непустое и ненулевое значение.
ISSET
проверяет переменную, чтобы узнать, установлена ли она, Другими словами, проверяет, является ли переменная любым значением, кроме NULL
или not assigned a value
. ISSET возвращает TRUE, если переменная существует и имеет значение, отличное от NULL. Это означает, что переменные, назначенные"", 0," 0 " или FALSE, установлены и, следовательно, истинны для ISSET.
EMPTY
проверяет, пуста ли переменная. Пустой интерпретируется как: ""(пустая строка), 0 (0 как целое число), 0.0 (0 как поплавок), "0" (0 как string), NULL, FALSE, array () (пустой массив) и "$var;" (объявленная переменная, но без значения в классе.
- проверить false: if ($v === false)
- проверить null: if (is_null ($v))
пустой () - это зло.Это медленно, и когда $ V queals false, 0, '0', array (),", он вернет true.если вам нужна такая проверка,Вы можете использовать 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';
}
?>