Php test пустая строка - PullRequest
       1

Php test пустая строка

7 голосов
/ 08 ноября 2011

У меня есть немного php-кода, который я не понимаю, почему он действует так, как есть.У меня есть переменная с именем contactId, которую я хочу проверить, чтобы увидеть, если она пуста.Однако даже если он пуст, он оценивается как истина.Код ниже.Заранее спасибо.

print "*".$contactId."*<br/>";
if($contactId != '')
{
    //queryContact($contactId);
    print "Contact Present<br/>";
}

Результат, возвращаемый на экран:

**

Контакт присутствует

Ответы [ 5 ]

9 голосов
/ 08 ноября 2011

Если вы хотите точно увидеть, какая у вас строка, просто используйте var_dump(), например, вот так:

var_dump($contactId)

вместо

print "*".$contactId."*<br/>";
2 голосов
/ 08 ноября 2011

Несколько вещей, которые вы можете попробовать:

if (!empty($contactId)) {
    // I have a contact Id
}

// Or

if (strlen($contactId) > 0) {
    // I have a contact id
}

По своему опыту я часто использовал последнее из двух решений, потому что были случаи, когда я ожидал, что переменная будет иметь значение 0,который действителен в некоторых контекстах.Например, если у меня есть сайт для поиска напитков и я хочу указать, является ли ингредиент безалкогольным, я бы присвоил ему значение 0 (т.е. IngredientId = 7, Alcoholic = 0).

1 голос
/ 08 ноября 2011

Сделай это с if (isset($contactId)) {}.

0 голосов
/ 08 ноября 2011

В дальнейшем используйте if(!empty($str)) { echo "string is not empty"}.

0 голосов
/ 08 ноября 2011

Вы, вероятно, хотите:

if (strlen($contactId))

Вы хотите узнать разницу между '' и null и между == и ===.Смотрите здесь: http://php.net/manual/en/language.operators.comparison.php

и здесь: http://us3.php.net/manual/en/language.types.null.php

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