PHP:为什么用!! $ var而不是(boolean)$ var进行类型转换?

时间:2010-01-01 06:25:50

标签: php casting boolean

这两个都将确保$ var是一个布尔值,但后者似乎更清楚。双重感叹号(!!)的类型较短但不太清晰,更容易引起混淆。更不用说难以进行搜索以获得答案。

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

2 个答案:

答案 0 :(得分:4)

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

var booleanValue = Boolean(otherValueType);

这相当于:

var booleanValue = !!otherValueType;

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

所以,要回答你的问题,要么两种语言都很好,它只是个人风格的选择。

答案 1 :(得分:3)

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

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