在写if的时候,在写while的时候,总感觉不写一个true或者false就难受。是的,你还不明确php里面都有哪些值是true,哪些值是false!
除了false的,都是true!
php里面为false的东西
- 布尔值
FALSE
本身 - 整型值 0(零)
- 浮点型值 0.0(零)
- 空字符串,以及字符串 “0”
- 不包括任何元素的数组
- 不包括任何成员变量的对象(仅 PHP 4.0 适用)
- 特殊类型 NULL(包括尚未赋值的变量)
- 从空标记生成的 SimpleXML 对象
既然说了除了false以外的都是true了,那么就别天真的以为-1是false了,它也是true。
有趣的boolean或运算,||和or
在或运算中,有||和or两个,
<?php
$x=TRUE;
$y=FALSE;
$z=$y OR $x; //z的值为false
?>
<?php
$x=TRUE;
$y=FALSE;
$z=$y || $x; //z的值为true
?>
不得不说or这个运算优先级是非常低的,它的优先级比赋值运算更低,所以第一个z的值为fasle。||的运算优先级要比赋值高,因此第二个z的值为true.
附录:php运算符优先级
从上到下,优先级依次降低
结合方向 | 运算符 | 附加信息 |
---|---|---|
无 | clone new | clone 和 new |
左 | [ | array() |
右 | ++ — ~ (int) (float) (string) (array) (object) (bool) @ | 类型和递增/递减 |
无 | instanceof | 类型 |
右 | ! | 逻辑运算符 |
左 | * / % | 算术运算符 |
左 | + – . | 算术运算符和字符串运算符 |
左 | << >> | 位运算符 |
无 | == != === !== <> | 比较运算符 |
左 | & | 位运算符和引用 |
左 | ^ | 位运算符 |
左 | | | 位运算符 |
左 | && | 逻辑运算符 |
左 | || | 逻辑运算符 |
左 | ? : | 三元运算符 |
右 | = += -= *= /= .= %= &= |= ^= <<= >>= => | 赋值运算符 |
左 | and | 逻辑运算符 |
左 | xor | 逻辑运算符 |
左 | or | 逻辑运算符 |
左 | , | 多处用到 |
2.php运算符优先级(本站链接)
赞赏微信赞赏
支付宝赞赏
《看看php的boolean都有哪些,以及其有趣的用法》有1条评论