华子目录
- 数据类型
- PHP的八种数据类型
- 基本数据类型,4类
- 复合数据类型,2类
- 特殊数据类型,2类
- 类型转换
- 在PHP中有两种类型转换方式
- ==其他类型==转==bool类型==
- ==其他类型==转==数值类型==
- 实例
- 类型判断
- 获取和设定变量类型
- 获取gettype(变量名)
- 设置settype(变量名,类型)
- 整数类型
- 浮点类型
- 定义浮点类型
- bool类型
数据类型
- 数据类型:
data type
,在PHP中指的是存储的数据本身的类型,而不是变量的类型。PHP是一种弱类型语言,变量本身没有数据类型。
PHP的八种数据类型
基本数据类型,4类
- 整形:
int
,系统分配4个字节存储 - 浮点型:
float/double
,系统分配8个字节存储 - 字符串类型:
string
,系统根据实际长度分配,表示字符串(使用引号) - 布尔类型:
bool/boolean
,表示布尔类型,只有两个值:true和false
复合数据类型,2类
- 对象类型:
object
,存放对象(面向对象) - 数组类型:
array
,存储多个数据(一次性)
特殊数据类型,2类
- 资源类型:
resource
,存放资源数据(PHP外部数据,如数据库,文件等) - 空类型:
NULL
,只有一个值就是NULL
(不能运算)
类型转换
- 类型转换:在很多条件下,需要指定的数据类型,如:需要从外部数据(当前PHP取得的数据)中,转换成目标数据类型。
在PHP中有两种类型转换方式
-
自动转换:系统根据需求自己判定,自己转换(用的比较多,效率偏低)
-
强制(手动)转换:根据需要手动转换
- 强制转换规则:在变量之前增加一个括号
()
,然后再里面写上对应的类型,如int
,其中NULL
类型使用unset()
- 强制转换规则:在变量之前增加一个括号
-
在转换过程中,用的比较多的就是转布尔类型(判断)和转数值类型(算术运算)
其他类型转bool类型
其他类型转数值类型
- 布尔true为1,false为0
- 字符串转数值有自己的规则
- 以字母开头的字符串,永远为0
- 以数字开头的字符串,直到遇到字符串为止(不会同时包含两个小数点)
实例
类型判断
- 通过一组类型判断函数,来判断变量,返回这个变量所保存的数据类型(返回值为bool类型)。(只要返回的结果为bool类型,都可以使用
var_dump进行输出打印
) - 是一组以
is_
开头后跟类型名的函数,如is_int(变量名),is_string(变量名)
- 返回的bool值不能用
echo
查看,可以使用var_dump()
函数查看var_dump(变量名)
,自带打印结果
获取和设定变量类型
- 有一组函数可以用来获取和设定数据的类型
获取gettype(变量名)
gettype(变量名)
,获取类型,返回的是变量对应的类型名
设置settype(变量名,类型)
settype(变量名,类型)
设定数据类型,与强制转换不同强制转换
是对数据值复制后的内容进行处理(不会修改原来的值的性质)settype
会直接改变原本的数据本身settype
设置成功,返回bool
值
整数类型
- 整数类型:保存整数数值(范围限制),4个字节存储数据,最大就是32位:42亿多。但是在PHP中默认是有符号类型(区分正负数)
- 在PHP中提供了四种整型的定义方式:十进制定义,二进制定义,八进制定义和十六进制定义
$a = 120;
10进制$a=0b110;
2进制2+4=6
$a=0110
8进制8+64=72
$a=0x110
16进制16+256=272
-
默认PHP输出数值时,会自动转换成10进制输出
-
PHP中不需要用户那么复杂的去计算,PHP提供了很多函数进行转换
decbin()
10进制转2进制decoct()
10进制转8进制dechex()
10进制转16进制bindec()
2进制转10进制
浮点类型
- 浮点型:小数类型以及超过整型所能存储范围的整数(不保证精度),精度范围大概在15个有效数字左右
定义浮点类型
$f1=1.23;
$f2=1.23e2
科学计数法,结果为123
bool类型
- 布尔类型:两个值true和false,通常是用于判断比较
- 在进行某些数据判断的时候,需要特别注意类型转换
empty()
判断数据的值是否为“空”,如果为空返回true,不为空返回falseisset()
判断数据存储的变量本身是否存在,存在变量返回true,不存在返回false