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