返回真输出1,但不返回假输出


returning true outputs 1 but returning false outputs nothing

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

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

有人能对这件事有所了解吗?在我看来,当你从"true"输出为"1"但"false"不输出"0"的角度来看时,这确实是一种双重标准。

再说一遍,没什么大不了的,但我认为PHP被设计成那样肯定是有原因的。了解这一点可能会让我们对这种美丽的语言有更多的了解。

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

上面提到的示例函数I;

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

布尔TRUE值转换为字符串"1"。布尔值FALSE为转换为"(空字符串)。这允许转换回介于布尔值和字符串值之间。

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

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

因为当false被强制转换为字符串时,它变成了''——空字符串。

要查看差异,请使用var_dump();而不是echo

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