PHP проверяет, является ли False или Null

Я также путаюсь, как проверить, является ли переменная 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;" (объявленная переменная, но без значения в классе.

  • check false: if ($ v === false)
  • check null: if (is_null ($ v))

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'; } ?>