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