php数据分类
php中数据类型分为三大类,八小类:
- 基本数据类型
- 整型(int):存储整数数据
- 浮点型(float):存储小数数据和超过整型范围的数
- 布尔型(bool):存储布尔数据,true和false
- 字符串型(string):存储字符串数据
- 复合数据类型
- 数组型(array):存储数组数据
- 对象型(object):存放对象类型
- 特殊数据类型
- 资源型(resource):存储外部资源数据(数据库资源/文件资源)
- 空型(null):变量没有存储任何数据
php是一种弱类型的语言,其变量没有数据类型,但是变量所存储的数据有对应的数据类型。
数值型数据类型
整型数据类型:采用8个字节存储,并且提供了多种进制的整数存储方式
$num = 10; // 十进制
$num1 = 0123; // 八进制(83)
$num2 = 0x123; // 十六进制(291)
$num3 = 0b1101; //二进制(13)
进制转换:在实际开发中可利用php内置函数来完成
小数型数据类型:采用8个字节存储,并且提供了多种存储方式
$float_num = 1.23;
$float_num1 = 1.23e3; // 1.23乘10的3次方
其在内存中的存储方式是:将8字节的一部分拿出来存储指数,一部分存储有效数字,则某些时候,当超出一定范围,会导致精度丢失。
布尔数据类型
true与false在php中不区分大小写。
字符串数据类型
在php中,凡是用户输入的数据和程序员使用了引号(单引号和双引号)定义的数据,系统都理解为字符串,php7字符串的长度理论上无限制。
单引号和双引号都可以定义字符串,但是彼此是有区别的:
- 单引号中只能解析少量的转义符号:\’,\
- 双引号中能解析较多的转义字符:$,\”,\,\n
- 双引号中能够解析嵌套在字符串中的php变量(变量要与其他字符串分离,使用{})
$a = "你好";
$c = "$a世界";
// $c = "{$a}世界" 常用
echo $c; //输出“你好世界”
nowdoc与heredoc
$wish = "世界和平";
// nowdoc
$n =<<< 'END'
我的愿望是:$wish
END;
echo $n; // 我的愿望是:$wish
// heredoc
$h =<<< END
我的愿望是:$wish
END;
echo $h; // 我的愿望是:世界和平
使用
定界符
时必须严格按照格式,END
后面不能有任何东西,且其中的任何东西都会被认为字符串。
字符串查看
可以通过下标$str[1]
来查看字符串中制定下标的字符,当索引为负数时,则从后往前作为索引方向。
php数组
定义数组
在php中可以通过多种方式来定义数组,通用的几种方式如下:
- 使用array关键字来初始化数组
- 使用数组括号[]
来初始化数组
- 使用变量和[]
来初始化数组,这个时候需要给定一个值,且每次只能增加一个值。
// 使用array
$arr1 = array(); // 可以不指定元素
$arr2 = array("name", "age");
// 使用[]定义数组
$arr3 = [];
$arr4 = ["name", "age"];
// 针对变量增加元素方式定义数组
$arr4 = "name";
数组特点
- php数组中的元素理论上没有数量限制
- php数组中可以动态增加元素
- php数组元素的值可以使任意数据类型
- php数组下标可以是纯数字(索引数组)、纯字符串(关联数组)、混合数字和字符串(混合数组)
// 索引数组
$arr1 = array(1, 2, 3 4);
// 关联数组
$arr2 = array("name"=>"jhon", "age"=>23);
// 混合数组
$arr3 = array(1, 2, "name"=>"jhon", "age"=>23);
二维数组
此处可这样理解:存储一个user利用一个数组来存储name和age,那么可以定义一个二维数组,来存储多个user。访问时先通过一位下标找到对应数组元素,然后用二维下标读取元素值。
类型判断
通过系统函数判定数据类型:函数的格式使用is_
开头,后面跟对应的数据类型,其返回结果是布尔类型。
类型转换
自动转换:php会自动根据数据要参与的运算场景来将不符合条件的数据类型的数据转换目标类型数据。这种转换不会改变变量原来的数据类型。
强制转换:使用int(目标数据类型)
格式来转换数据。