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

Ave*_*Joe 7 php boolean

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

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.


zer*_*kms 5

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

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

var_dump((string) true);
var_dump((string) false);
Run Code Online (Sandbox Code Playgroud)