数据类型: data type,在php中指的是储存的数据本身的类型,而不是变量的类型。php是一种弱类型语言,变量本身没有数据类型。
PHP的八种类型
在php中将数据分为三大类八小类;
简单(基本)数据类型:4小类;
整型:int/interger,系统分配4个字节储存,表示整数类型(有前提),
浮点型:float/double,系统分配8字节储存,表示小数或者整型存不下的整数,
字符串型:string,系统根据实际长度分配,表示字符串(引号);
布尔型:bool/boolean,表示布尔型,只有两个值:true和false。
复合数据类型:2小类;
对象类型:resource,存放资源数据(php外部数据,如数据库,文件);
空类型:NULL,只有一个
类型转换
类型转换:在很多的条件下,需要指定的数据类型,需要外部数据(当前php取的数据),转换成目标数据类型。
在php中有两种类型转换方式:
- 自动转换:系统根据需求自己判定,自己转换(用的比较多,效率偏低)
- 强制(手动)转化:认为根据需要的目标类型转换----强制转换规则:在变量之前增加一个括号(),然后在里面写上对应的类型:int/interger…其中NULL类型用到unset()
在转换过程中,用的比较多的就是布尔类型(判断)和转数值类型(算术运算) 其他类型转布尔型:true或者false,在php中比较少见类型转换变成false
其他类型转换数值的说明:
- 布尔true为1,false为0;
- 字符串转数值有自己的规则;
2.1以字母开头的字符串,永远为0
2.2 以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)
<?php
//数据类型
//创建数据
$a = 'abc1.1.1';
$b = '1.1..1abc';
//自动转换
echo $a+$b; //算术+运算,系统先转换成数值类型(整形和浮点型),然后运算
//强制转换
echo'<br/>',(float)$a,(float)$b;
?>
类型判断
通过一组类型判断函数,来判断变量,最终返回这个变量所保存的数据类型(相同结果为true,不相同为false):判断函数是以一组以is_开头后面跟类型名字的函数:is_xxx(变量名);
bool类型不能用echo来查看,可以使用var_dump结构来查看 var_dump(变量1,变量2,....)
var_dump(is_int($a));
var_dump(is_string($a));
还有一组函数可以用来获取以及设定数据(变量)的类型
getstype(变量名) :获取类型,得到的是该类型对应的字符串;
settype(变量名,类型) :设定数据类型:与强制转换不同。
- 强制转换(类型)变量名,是对数据值复制的内容进行处理(不会处理实际储存的内容)
- settype会直接改变数据本身
echo gettype($a);
//设置类型
var_dump(settype($b,'int'));
echo gettype($b).'<hr>'.$b;