在php中指的是存储的数据本身的类型,而不是变量的类型,php是一种弱类型语言,变量本身没有数据类型。
php中的八种数据类型
php中数据分为三大类八小类
简单(基本)数据类型:
1.整型:int/integer ,系统分配4个字节存储,表示整数类型
2.浮点型:float/double 系统分配八个字节存储,表示小数或整型存不下
3.字符串型:string,系统根据实际长度分配,表示字符串(引号)
4.布尔类型:bool/boolean,表示布尔类型,只有两个值:true和false
复合数据类型:
对象类型:object,存放对象(面向对象)
数组类型:array,存储多个数据(一次性)
特殊数据类型:
资源类型:resource,存放资源数据(php外部数据,如数据库,文件)
空类型:NULL
在很多条件下,需要指定的数据类型,需要外部数据(当前php取得的数据)转换成目标数据类型
在php中有两种转换方式:
1**.自动转换**:系统根据需求自己判定,自己转换(用得较多,效率偏低)
2.强制(手动)转换:认为根据需要的目标类型转换
规则:在变量之前增加”()”,然后在里面写上对应类型:int/integer…
在转换过程中用得较多的就是 转布尔类型(判断)和转数值类型(算术运算)
其他类型转布尔类型:true或false,很少类型会转为false
其他类型转数值的说明:
1.布尔true为1,false为0
2.字符串转数值有自己的规则
2.1以字母开头的字符串,永远为0
2.2以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)
通过一组类型判断函数,来判断变量,最终返回这个变量所保存的数据类型 :是一组以is_开头后面跟类型名字的函数:is_XXX(变量名)
Bool类型不能用echo查看,可以使用var_dump结构查看:
var_dump(变量1,变量2…)(用处:确认数据是否安全)
还有一组函数可以用来获取以及设定数据(变量)的类型:
Gettype(变量名):获取类型,得到的是该类型对应的字符串
Settype(变量名,类型):设定数据类型:与强制转换不同
1.强制转换(类型)变量名,是对数据值复制后的内容进行处理
2.settype:会改变数据本身
整数类型
保存整数数值(范围限制),4个字节在php中默认有符号类型(区分正负)
四中整型定义方式:十进制定义,二进制定义,八进制定义,十六进制定义
$a=120 十进制
$a=0b110 二进制
$a=0120 八进制
$a=0x110 十六进制
浮点类型
小数类型和超过整型所存的范围,大概在15个有效数字
两种方式
$f=1.23;
$f=1.23e10;
布尔类型
两个值:true和false,用于判断比较。
在进行某些数据判断时涉及到类型转换
empty():判断数据值是否为空,不是null,为空返回ture(0也认为是空),不为空返回false
isset():判断数据存储的变量本身是否存在,存在变量为ture,不存在为false
是一种将数据进行运算的特殊运算符,在php中一共有十多种运算符
赋值运算符
算数运算符
比较运算符
逻辑运算符
连接运算符
错误抑制符
php中有一些错误可以提前预知,但这些可能无法避免但又比希望报错给用户看,可使用
@:在可能出错的表达式前面使用@
错误抑制符通常在生产环境会用到,在开发的时候不会。
三目运算符
有三个表达式参与的运算
表达式1?表达式2:表达式3;
如果表达式1成立执行表达式2否则用表达式3
自操作运算符
++:在原来的值上加1
–:正在原来的值上减1
$a=1;
b
=
b=
b=a++; b=2,a=2
c
=
+
+
c=++
c=++a; c=2,a=1
*=、/=、等等
位运算符
取计算机中最小单位进行运算
&:按位与,两位都为1,结果为1,否则为0
|:按位或,两个有一个为1,结果为1
~:按位非,一个位如果为1,则变为0,反之
^:按位异或:两个相同为0,不同为1
<<:按位左移,整个位(32位),向左移一位,右边补0
:按位右移,左边补符号位(正数为0,负数为1)
运算符优先级
见php手册
以上图片截自[http://yun.itheima.com/course/264.html?bili]