возвращая истинные выходы 1, но ничего не возвращая ложные выводы - PullRequest
7 голосов
/ 19 марта 2012

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

echo isA("A");  //outputs 1

echo isA("B");  //outputs nothing. why doesn't it output 0?  

Кто-нибудь может пролить свет на этот вопрос?Мне кажется двойным стандартом, когда вы смотрите на это с точки зрения, что «true» выводит как «1», но «false» не выдает «0».

Опять же, ничего страшногоно я думаю, что должна быть причина для того, чтобы PHP создавался таким образом.Знание этого может дать более глубокое понимание этого прекрасного языка.

Истинное значение будет проявляться как видимое значение 1, но ложное значение - нет.Итак, скажите мне, в чем преимущество этого метода?

пример функции, о которой я говорил выше;

function isA($input){
    if ( $input == "A" ):
        return true;
    else:
        return false;
    endif;
}

Ответы [ 2 ]

13 голосов
/ 19 марта 2012

Логическое значение ИСТИНА преобразуется в строку «1». Логическое значение ЛОЖЬ преобразуется в "" (пустая строка). Это позволяет преобразование обратно и вперед между логическими и строковыми значениями.

http://us3.php.net/manual/en/language.types.string.php#language.types.string.casting

Если вы хотите напечатать логическое значение для отладки, вы можете использовать var_dump или print_r.

5 голосов
/ 19 марта 2012

Потому что когда false приводится к строке, он становится '' - пустой строкой.

Чтобы увидеть разницу, используйте var_dump(); вместо echo

var_dump((string) true);
var_dump((string) false);
...