在平时写代码的时候经常会进行逻辑判断,当条件满足才去执行,最常用的就是用"=="
去对比两边的值了,而"=="
首先会将两边的值转换为相同的类型然后再进行对比,有的时候我们会将某个变量(或者其它)与TRUE/FALSE
进行对比,那么那些值为TRUE
哪些值为FALSE
呢?
之前有段时间也是对这个概念掌握地模糊,只是靠着感觉与调试去写代码,但这并不是长久之计,虽然最后也能完成任务但是较低了效率,增加了不必要的麻烦,在php手册中查了一下,将其记下,防止以后忘记。
要明确地将一个值转换成 boolean
,用 (bool)
或者 (boolean)
来强制转换。但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制结构需要一个 boolean
参数时,该值会被自动转换。
当转换为 boolean
时,以下值被认为是 FALSE
:
- 布尔值
FALSE
本身 - 整型值
0
(零) - 浮点型值
0.0
(零) - 空字符串,以及字符串
"0"
- 不包括任何元素的数组
- 特殊类型
NULL
(包括尚未赋值的变量
) - 从空标记生成的
SimpleXML
对象
所有其它值都被认为是 TRUE(包括任何资源 和 NAN)。 |
Warning -1 和其它非零值(不论正负)一样,被认为是 TRUE! |
<?php
var_dump((bool) "");
var_dump((bool) 1);
var_dump((bool) -2);
var_dump((bool) "foo");
var_dump((bool) 2.3e5);
var_dump((bool) array(12));
var_dump((bool) array());
var_dump((bool) "false");
?>