这不是很重要,但我只是想知道其中的区别。
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);