【发布时间】:2010-12-31 13:48:45
【问题描述】:
这两者都将确保 $var 是一个布尔值,但后者似乎更清楚。双感叹号 (!!) 打字更短,但不太清晰,更容易引起混淆。更不用说很难通过搜索来获得答案了。
双感叹号是我只在 JavaScript 中听说过的,它没有布尔类型转换。在PHP中也看到它是正常的吗?
【问题讨论】:
这两者都将确保 $var 是一个布尔值,但后者似乎更清楚。双感叹号 (!!) 打字更短,但不太清晰,更容易引起混淆。更不用说很难通过搜索来获得答案了。
双感叹号是我只在 JavaScript 中听说过的,它没有布尔类型转换。在PHP中也看到它是正常的吗?
【问题讨论】:
这些在 PHP 中都不常见,因为它们是不必要的。
如果您可以使用!!,您也可以在需要布尔表达式的地方使用它(while、if、&& 等)。
【讨论】:
echo在php中没有产生任何结果?
这在 JavaScript 中是有效的,虽然在技术上不是“强制转换”,但它达到了相同的效果:
var booleanValue = Boolean(otherValueType);
这相当于:
var booleanValue = !!otherValueType;
我发现在处理传入参数时这样做很好,以澄清人们打算将值作为布尔值。检查“真实性”时,无需在 PHP 或 JavaScript 中进行类型转换。请记住,空字符串相当于 PHP 中的 false 和 JavaScript 中的 true。
所以,要回答您的问题,无论哪种语言都可以,这只是个人风格的选择。
【讨论】: