PHP基础—数据类型分类
在PHP中指的是存储的数据本身类型,而不是变量的类型。PHP是一种弱类型语言,变量本身没有数据类型。
PHP的八种数据类型
在PHP中将数据分为三大类八小类:
简单(基本数据)类型:4个小类
整形:int/integer,系统分配4个字节存储,表示整数类型(有前提)
浮点型:float/double,系统分配八个字节存储,表示小数或者整形存不下的整数
字符串型:string,系统根据实际长度分配,表示字符串(引号)
布尔类型:bool/boolean,表示布尔类型,只有两个值:true、false
复合数据类型:2个小类
对象类型:object,存放对象(面向对象)
数组类型:array,存储多个数据
特殊数据类型:2个小类
资源类型:resourse,存放资源数据(PHP外部数据,如数据库、文件)
空类型:NULL,不能运算
类型转换
在很多条件下,需要指定的数据类型,需要外部数据(当前PHP取得的数据),转换成目标数据类型
在PHP中有两种类型转换方式:
1、自动转换:系统根据自己的需求自己判定,自己转换(用的比较多,效率偏低)
2、强制转换:认为根据需要的目标类型转换
在转换过程中,用的比较多的就是转布尔类型和转数值类型
其他类型转布尔类型:参考PHP手册
其他类型转转数值类型说明:
1、布尔true为1,false为0;
2、字符串转数值有自己的规则
2.1、以字母开头的字符串,永远为0;
2.2、以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)
//创建数据
$a='abc1.1.1';
$b='1.1.1abc';
//自动转换
echo $a+$b; //算术+运算,系统先转换成数值类型(整形和浮点型),让后运算
//强制转换
echo '<br/>' (float)$a,(float)$b;
输出结果:
类型判断
通过一组类型判断函数,来判断变量,最终返回这个变量所保存数据的数据类型;是一组is_开头后面跟类型名字的函数:is_XXX(变量名)
bool类型不能用echo来查看,可以使用var_dump结构查看
var_dump(变量1,变量2…)
<?php
$a='abc1.1.1';
$b='1.1.1abc';
echo $a+$b;
echo '<br/>',(float)$a,(float)$b;
//判断数据类型
echo '<hr/>';
var_dump(is_int($a));
var_dump(is_string($a));
运行结果:
还有一组函数可以用函数可以用来以及设定数据(变量)的类型
gettype(变量名):获取类型,得到的是该类型对应的字符串
settype(变量名):设定数据类型:与强制转换不同
1、强制转换(类型)变量名,是对数据值复制的内容进行处理(不会处理实际存储的内容)
2、settype()会直接改变数据本身
<?php
$a='abc1.1.1';
$b='1.1.1abc';
echo $a+$b;
echo '<br/>',(float)$a,(float)$b;
//判断数据类型
echo '<hr/>';
var_dump(is_int($a));
var_dump(is_string($a));
echo '<hr/>';
echo gettype($a);
//设置类型
echo '<br/>';
var_dump(settype($b,'int'));
echo '<br/>';
echo $b;
运行结果:
伪类型
假类型,实际上在PHP中不存在的类型,但是通过伪装可以帮助程序员去更好的查看操作手册从而更方便学习。
伪类型主要有两种:在三大类八小类之外
Mixed:混合的,可以是多种PHP中的数据类型
Number:数值的,可以是任意数值类型(整型和浮点型)