定义:存储数据的容器,可被重复利用。
八大数据类型
标量型:
整型:没有小数的数值, 32位系统(32位存储):-2147483648 ~ 2147483647。超过范围自动转换为浮点型。
浮点型:带小数点的数值,64位存储,科学计数法表示的数值类型是浮点类型。浮点数是个近似数,注意不要用等号判断两个浮点数是否相等,也不要相信它精确到最后一位。
字符型:带单引号或双引号的数据
布尔型:只有正假值(true or false)
引用类型(重要):
数组:存储多个值的集合
对象:存储属性和属性操作方法的集合
其它类型:
NULL:正常用来删除引用
resource(资源):对资源操作时返回的值,拿到值后才能对资源具体操作
例如:打开文件,返回一个文件的句柄,拿到句柄后才能到文件进行读写操作。
区别:数值型变量赋值一般都是内存在栈中新开空间,而引用型则只在栈中存储数据的一个地址,而具体数据存储在堆中
注意:PHP是弱类型语言,即根据赋值的类型来决定变量的类型,这使得PHP的变量的使用更加灵活。
类型转换:
1、强制类型转换
1.1 setType(),将原变量给转换。
1.2 在变量使用时前面加上类型符号,原变量不变。
例:$int = '10';$a = (int)$int
1.3 intval(),floatval(),strval()
2、自动转换
2.1 转为布尔型(即返回值为0)
空字符串''或""
数字0或0.0..0 字符'0'或"0"
空值NULL 没有成员的数组
其余都转换成布尔型true,包含资源
2.2 转为整数或浮点型
如果字符串为合法的数字字符串,则直接转换成整型/浮点型
如果字符串中包含.或e或E,则转换成浮点型;否则转换成整型
非法的数字字符串转换成数值0
数字开头字符串,后面出现字母,则取前面的数字
布尔型true转换成数字1,false转换成数字0
空值null将转换成数字0
2.3 转为字符串型
数值将直接转换成数字字符串
布尔型的true转换成字符"1";false转换空字符串
数组将转换成字符串Array
资源将转换成Resource id#数字
空值null将转换成空字符串