这不是很重要,但我很想知道其中的区别.
echo isA("A"); //outputs 1
echo isA("B"); //outputs nothing. why doesn't it output 0?
Run Code Online (Sandbox Code Playgroud)
有人可以解决这个问题吗?从你认为"真实"输出为"1"但"假"不输出"0"的观点来看,它在我看来是双重标准.
同样,没什么大不了的,但我认为必须有一个像这样设计PHP的理由.知道这可能会更深入地了解这种美丽的语言.
真值将表现为可见1,但假值不会.那么,告诉我这种方法的优点是什么?
上面提到的示例函数;
function isA($input){
if ( $input == "A" ):
return true;
else:
return false;
endif;
}
Run Code Online (Sandbox Code Playgroud)
tak*_*eek 13
布尔值TRUE值转换为字符串"1".Boolean 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);
Run Code Online (Sandbox Code Playgroud)