这两个都将确保$ var是一个布尔值,但后者似乎更清楚。双重感叹号(!!)的类型较短但不太清晰,更容易引起混淆。更不用说难以进行搜索以获得答案。
双重感叹号是我在JavaScript中听到的,它没有布尔类型转换。看到它在PHP中使用也是正常的吗?
答案 0 :(得分:4)
这在JavaScript中有效,虽然在技术上不是“强制转换”,但它实现了同样的效果:
var booleanValue = Boolean(otherValueType);
这相当于:
var booleanValue = !!otherValueType;
我发现在处理传入参数时这样做很好,以澄清一个值是一个布尔值。检查“真实性”时,无需在PHP或JavaScript中进行类型转换。请记住,空字符串相当于PHP中的false
和JavaScript中的true
。
所以,要回答你的问题,要么两种语言都很好,它只是个人风格的选择。
答案 1 :(得分:3)
这些都不常见于PHP,因为它们是不必要的。
如果你可以做!!
,你也可以在需要布尔表达式的地方使用它(while
,if
,&&
等。) / p>