"" === пусто? - PullRequest
       23

"" === пусто?

0 голосов
/ 19 июля 2011

при сравнении строки, чтобы увидеть, если она пуста, есть ли разница между:

if($string==NULL){
    //do work
}

и

if($string==""){
    /do work
}

Просто интересно, потому что я хочу знать, какой из них более эффективен при обнаружении пустого ввода.

Ответы [ 8 ]

11 голосов
/ 19 июля 2011

Вы задаете несколько неопределенных вопросов здесь.PHP и JavaScript не являются одним и тем же языком, и вы ссылаетесь на разные операторы в заголовке и теле вопроса.В любом случае:

PHP:

'' == null          true
'' === null         false

JavaScript:

'' == null          false
'' === null         false

Возможно, вы захотите рассмотреть эти тесты в целом: «Получил ли я что-то в этой строковой переменной":

PHP:

if(!empty($string)) {
    // do work
}

JavaScript:

if($string) {
    // do work
}
2 голосов
/ 19 июля 2011

Чтобы проверить в PHP:

<?php echo var_dump("" === NULL); ?>

Чтобы проверить в JavaScript:

console.log("" === null)

Оба выдают false, поэтому вы не можете сделать это на любом языке.*

Даже если это сработало, не очевидно, что вы имеете в виду, сравнивая с нулем;это не C, где он постоянно используется для пропущенных значений.Если вы собираетесь получить строку в качестве входных данных, сравнение с пустой строкой более понятно.

2 голосов
/ 19 июля 2011

Да, есть разница. Проверка, действительно ли $ string == Null проверяет, была ли переменная вообще инициализирована, а $ string == "" проверяет, действительно ли строка существует, но что она содержит строку 0 длины

1 голос
/ 19 июля 2011

Я использую функцию empty () в PHP. Это не зависит от типа переменной. Однако при сравнении с "==" (не "==="!) NULL становится пустой строкой ("") при сравнении со строкой.

1 голос
/ 19 июля 2011

делает «» === пустым?

Нет.

В любом случае, вот сила тестирования ... для javascript.

alert("" === null);
0 голосов
/ 19 июля 2011
0 голосов
/ 19 июля 2011

Проверьте , руководство , "" не совпадает с null, так как первое является строкой, а второе - нулем, а === проверяет одинаковые типы, а также равные значения.

0 голосов
/ 19 июля 2011

В JavaScript ответ - нет.Пустая строка не равна null, хотя оба значения ложны.

...