返回true输出1但返回false输出没有

时间:2012-03-19 02:23:20

标签: php boolean

这不是很重要,但我很想知道其中的区别。

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

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

任何人都可以对此事进行阐述吗?从你认为“真实”输出为“1”但“假”不输出“0”的观点来看,它在我看来是双重标准。

同样,没什么大不了的,但我认为PHP必须有这样设计的原因。知道这可能会更深入地了解这种美丽的语言。

真值将表现为可见1,但假值不会。那么,告诉我这种方法的优点是什么?

上面提到的示例函数;

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

2 个答案:

答案 0 :(得分:12)

  

布尔值TRUE值转换为字符串“1”。布尔值为FALSE   转换为“”(空字符串)。这允许转换回来   在布尔值和字符串值之间。

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

如果要打印布尔值以进行调试,可以使用var_dump或print_r。

答案 1 :(得分:5)

因为当false被转换为字符串时,它变为'' - 空字符串。

要查看差异,请使用var_dump();代替echo

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