два разных способа проверить, является ли переменная пустой или нет - PullRequest
1 голос
/ 08 мая 2011

Ранее был вопрос php echo, если два условия выполняются , и большинство парней ответили, используя выражение if(!empty($variable)){}, чтобы проверить, является ли переменная пустой или нет, пока я отвечаю if($variable != ''){}. Мой вопрос: почему большинство из них ответили if(!empty($variable)){}, в чем разница между if($variable != ''){} ожидаемой читабельностью? Читаемость - единственное отличие, которое я сейчас вижу.

Спасибо, atno

Ответы [ 2 ]

2 голосов
/ 08 мая 2011

R и руководство

Returns FALSE if var has a non-empty and non-zero value.

The following things are considered to be empty:

    * "" (an empty string)
    * 0 (0 as an integer)
    * 0.0 (0 as a float)
    * "0" (0 as a string)
    * NULL
    * FALSE
    * array() (an empty array)
    * var $var; (a variable declared, but without a value in a class)

Примечание ::

Будьте осторожны, если «0» (ноль как строка), 0 (ноль как целое число) и -0 (минус ноль как целое число) вернет истину, «-0» (минус ноль как строку (да, У меня уже было несколько клиентов, которые написали -0 в поле формы)) возвращает false. Вам нужно привести вашу переменную перед тестированием с помощью функции empty ():

<?php
$var = "-0";
echo empty($var);  // returns false
$var = (int) $var; // casts $var as an integer
echo empty($vat);  // returns true
?>
1 голос
/ 08 мая 2011

empty также считает переменные пустыми, если они представляют собой 0-целое число, NULL, FALSE, пустой массив (посмотрите на возвращаемые значения). Вы только проверяете, не является ли это пустой строкой. Вы проверяете, вернет ли значение true, если переменная, например, установлено на (логическое) FALSE.

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