Я также путаюсь, как проверить, является ли переменная false / null при возврате из функции.
Когда использовать empty () и когда использовать isset () для проверки состояния?
Для возврата из функций вы не используете ни isset
ни empty
, поскольку они работают только с переменными и просто проверяются на наличие несуществующих переменных без возникновения ошибок.
Для проверки функций для существования переменных бесполезно, поэтому просто выполните:
if (!my_function()) { // function returned a falsey value }
Чтобы прочитать об этом более подробно, см. Раздел «Окончательное руководство по 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 или Empty string), но не NULL. Возвращает TRUE, если var существует; FALSE в противном случае.
С другой стороны, функция empty () проверяет, имеет ли пустая строка пустая строка, 0, NULL или False. Возвращает FALSE, если var имеет непустое и ненулевое значение.
ISSET
проверяет переменную, чтобы убедиться, что она была установлена, другими словами, она проверяет, есть ли переменная какое-либо значение, кроме NULL
или not assigned a value
. ISSET возвращает TRUE, если переменная существует и имеет значение, отличное от NULL. Это означает, что переменные, назначенные «», 0, «0» или «ЛОЖЬ», установлены и, следовательно, ИСТИНА для ISSET.
EMPTY
проверяет, пуста ли переменная. Пустой интерпретируется как: «» (пустая строка), 0 (0 как целое число), 0.0 (0 в виде float), «0» (0 в виде строки), NULL, FALSE, array () (пустой массив ) и "$ var;" (объявленная переменная, но без значения в классе.
empty () – это evil.It является медленным, и когда $ 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'; } ?>