PHP的数据类型与大部分主流语言类型一样,它把类型划分为标量类型、复合类型、特殊类型,还有伪类型。
很有趣的是PHP变量的类型不是程序员可以指定的,而是由PHP根据该变量使用的上下文在运行时决定的。就像Javascript里的var定义变量,它可以是一个对象,一个整数,一个浮点数……
注: 如果想查看某个表达式的值和类型,用 var_dump() 。
注: 如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype() 。要查看某个类型,不要 用 gettype() ,而用 is_type 函数。
如果要将一个变量强制转换为某类型,可以对其使用强制转换或者 settype() 函数。
一、标量类型 boolean
(1)初次见面
<?php $foo =True; // == is an operator which test // equality and returns a boolean if ($action == "show_version") { echo "The version is 1.23"; } // this is not necessary... if ($show_separators == TRUE) { echo "<hr>\n"; } // ...because you can simply type if ($show_separators) { echo "<hr>\n"; } ?>
要明示地将一个值转换成 boolean ,用 (bool) 或者 (boolean) 来强制转换。
很多情况下不需要用强制转换,因为当运算符,函数或者流程控制需要一个 boolean 参数时,该值会被自动转换。
(2)会认为是“错”的时候
以下情况boolean 变量的值都是“错”值,False。其它所有值都被认为是True的,注意这里也包括了-1等所有负值。
a. 布尔值 FALSE ,
b. 整型值 0(零),
c. 浮点型值 0.0(零) ,
d. 空白字符串和字符串 "0" ,
e. 没有成员变量的数组 ,
f. 没有单元的对象(PHP4) ,
g. 特殊类型 NULL(包括尚未设定的变量)
<?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) ?>
学习资料来源:《PHP 手册》