【问题标题】:PHP: Why typecast with !!$var instead of (boolean)$var?PHP:为什么使用 !!$var 而不是 (boolean)$var 进行类型转换?
【发布时间】:2010-12-31 13:48:45
【问题描述】:

这两者都将确保 $var 是一个布尔值,但后者似乎更清楚。双感叹号 (!!) 打字更短,但不太清晰,更容易引起混淆。更不用说很难通过搜索来获得答案了。

双感叹号是我只在 JavaScript 中听说过的,它没有布尔类型转换。在PHP中也看到它是正常的吗?

【问题讨论】:

    标签: php casting boolean


    【解决方案1】:

    这些在 PHP 中都不常见,因为它们是不必要的。

    如果您可以使用!!,您也可以在需要布尔表达式的地方使用它(whileif&& 等)。

    【讨论】:

    • 我做错了什么,还是echo在php中没有产生任何结果?
    【解决方案2】:

    这在 JavaScript 中是有效的,虽然在技术上不是“强制转换”,但它达到了相同的效果:

    var booleanValue = Boolean(otherValueType);
    

    这相当于:

    var booleanValue = !!otherValueType;
    

    我发现在处理传入参数时这样做很好,以澄清人们打算将值作为布尔值。检查“真实性”时,无需在 PHP 或 JavaScript 中进行类型转换。请记住,空字符串相当于 PHP 中的 false 和 JavaScript 中的 true

    所以,要回答您的问题,无论哪种语言都可以,这只是个人风格的选择。

    【讨论】:

      猜你喜欢
      • 2018-08-31
      • 2011-06-19
      • 2012-05-21
      • 2019-02-10
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      相关资源
      最近更新 更多