一篇关于if以及bool的软文
if
if是我们在程序中经常用到,例如:
if(expr)
statement
此表达式中expr为判断条件,一般返回值返回值为TRUE或者FALSE.如果expr不为bool时候,()会强制转换.当为TRUE时执行statement否则不执行.
具体使用如下:
$a=1;
$b=o;
if($a>$b){
echo 'a is bigger than b';
}
与之相似的或者说是同样的功能的函数为?:
$a=0;
echo (a==0)?'true':'false';//get true
以上即为条件判断语句,如果以后有所深入了解,会补上.
bool
bool是常用数据类型,只有TRUE和FALSE两种类型.一般用作判断语句的条件.
但是我们在使用判断语句是, expr不一定为bool类型,这里就会涉及到其他数据的类型转换.一般会和()配合使用.
当转换boolean类型时,会按照以下方式转换:
布尔值FALSE身.
整形值0.
浮点类型0.0
空字符串'',以及字符串'0';//这里是重点
不包含任何元素的数组.
不包含任何成员的对象.(仅php 4.0)
特殊类型NULL
其他任何类型的数据都被默认为TRUE(包括资源类型)
-1也为TRUE(无论正负)
以下为实测
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>