Пустые переменные PHP - PullRequest
       9

Пустые переменные PHP

0 голосов
/ 07 апреля 2010

Есть ли лучший способ, кроме isset() или empty(), проверить пустую переменную?

Ответы [ 2 ]

4 голосов
/ 07 апреля 2010

Это зависит от контекста.

isset() вернет ТОЛЬКО значение true, если значение переменной не равно NULL (и, следовательно, переменная, по крайней мере, определена).

empty() вернет true, если значение переменной считается «пустым», обычно это означает 0, "0", NULL, FALSE, array() (пустое массив) и "" (пустая строка), все остальное не является пустым.

Некоторые примеры

FALSE == isset($foo);
TRUE == empty($foo);
$foo = NULL;
FALSE == isset($foo);
TRUE == empty($foo);
$foo = 0;
TRUE == isset($foo);
TRUE == empty($foo);
$foo = 1;
TRUE == isset($foo);
FALSE == empty($foo);
2 голосов
/ 07 апреля 2010

Следите за некоторыми странными результатами, которые вы получаете с помощью PHP; вам может понадобиться использовать ===, чтобы получить ожидаемый результат, например

if (0 == '') {
  echo "weird, huh?\n";
}

if  (0 === '') {
  echo "weird, huh?\n";
} else {
  echo "that makes more sense\n";
}

Поскольку 0 ложно, а пустая строка ложна, 0 == '' совпадает с FALSE == FALSE, что является истиной. Использование === заставляет PHP также проверять типы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...