【问题标题】:returning true outputs 1 but returning false outputs nothing返回真输出 1 但返回假不输出
【发布时间】:2012-03-19 02:23:19
【问题描述】:

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

echo isA("A");  //outputs 1

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

任何人都可以对这件事有所了解吗?从“true”输出为“1”但“false”不输出“0”的角度来看,这在我看来确实是一种双重标准。

再说一次,没什么大不了的,但我认为 PHP 必须这样设计是有原因的。知道这一点可能会让我们对这种美丽的语言有更多的了解。

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

我上面提到的示例函数;

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

【问题讨论】:

  • 优美的语言?不同意(但我也是 PHP 程序员):P
  • @MuhammadAbrar:美与此无关。

标签: php boolean


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-16
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多