PHP 的数据类型分为三大类, 八小类:
1, 标量类型
boolean(布尔型): 这是最简单的类型, 只有两个取值, 可以为 TRUE/true 或 FALSE/false, 不区分大小写. 详细请查看: PHP 布尔类型(boolean)
integer(整型): 整型值可以使用十进制, 十六进制或八进制表示, 前面可以加上可选的符号( - 或 + ). 八进制表示数字前必须加上 0(零), 十六进制表示数字前必须加上 0x. 详细请查看: PHP 整型数据(integer)
float(浮点型, 也称作 double): 详细请查看: PHP 浮点类型(float)
string(字符串): 字符型变量不同于其他编程语言有字符和字符串之分, 在 PHP 中, 统一使用字符型变量来定义字符或者字符串. 详细请查看: PHP 字符串类型(string)
2, 复合类型
array(数组): 数组型变量是一种比较特殊的变量类型
object(对象): 对象也是一种特殊的数据类型, 要创建 object 变量, 一般使用 new 关键字来获取, 详细请查看: PHP 对象类型(object)
3, 特殊类型
resource(资源型): 资源是一种特殊的变量, 保存了到外部资源的的一个引用. 资源是通过专门的函数来建立和使用的. 详细请查看: PHP 资源类型(resource)
NULL(空 null): 表示一个变量没有值. NULl 唯一可能的值就是 NULL
注意: PHP 是一种弱类型的语言, 其变量没有数据类型, 但是变量所存储的数据有对应的数据类型
整型数据类型: 采用 8 个字节存储, 并且提供了多种进制的整数存储方式
- $num = 10; // 十进制
- $num1 = 0123; // 八进制(83)
- $num2 = 0x123; // 十六进制(291)
- $num3 = 0b1101; // 二进制(13)
浮点型数据类型: 采用 8 个字节存储, 并且提供了多种存储方式
- $float_num = 1.23;
- $float_num1 = 1.23e3; // 1.23 乘 10 的 3 次方
其在内存中的存储方式是: 将 8 个字节的一部分拿出来存储指数, 一部分存储有效数字, 则某些时候, 当超出一定范围, 会导致精度丢失.
字符串数据类型
在 PHP 中, 凡是用户输入的数据和程序员使用了引号 (单引号和双引号) 定义的数据, 系统都理解为字符串, php7 字符串的长度理论上无限制
单引号和双引号都可以定义字符串, 但是彼此是有区别的:
-- 单引号中只能解析少量的转义符号:\',\
-- 双引号中能解析较多的转义字符:$,\",\n
双引号中能够解析嵌套在字符串中的 PHP 变量( 变量要与其他字符串分离, 使用{} )
- $a = "你好";
- $c = "$a 世界";
- // $c = "{$a}世界" 常用
- echo $c; // 输出 "你好世界"
字符串查看
可以通过下标 $str[ 1 ]来查看字符串中制定下标的字符, 当索引为负数时, 则从后往前作为索引方向
定义数组
在 PHP 中可以通过多种方式来定义数组, 通用的几种方式如下:
-- 使用 array 关键字来初始化数组
-- 使用数组括号 [ ] 来初始化数组
- // 使用 array
- $arr1 = array(); // 可以不指定元素
- $arr2 = array("name", "age");
- // 使用 [] 定义数组
- $arr3 = [];
- $arr4 = ["name", "age"];
数组的特点
1,PHP 数组中的元素理论上没有数量限制
2,PHP 数组中可以动态添加元素
3,PHP 数组元素的值可以是任意数据类型
4,PHP 数组下标可以是纯数字(索引数组), 纯字符串(关联数组), 混合数字和字符串(混合数组)
类型判断
通过系统函数判定数据类型: 函数的格式使用 is_ 开头, 后面跟对应的数据类型, 其返回结果是布尔类型.
类型转换
自动转换: PHP 会自动根据数据要参与的运算场景来将不符合条件的数据类型的数据转换目标类型数据, 这种转换不会改变变量原来的数据类型
强制转换: 使用 int(目标类型)格式来转换数据
来源: https://www.jb51.net/article/149417.htm