一、数据类型的分类(三大类八小类)
1.标量数据类型
- int 线性整数,可以有十进制,八进制,十六进制
<?php //十进制 $v1=255; echo $v1;//255 //八进制------以0开头(输出会自动转为10进制的整数) $v2=076; echo $v2;//62 //十六进制-----以0x开头(输出会自动转为10进制的整数) $v3=0xFF; echo $v3;//255 ?>
- float 带有小数点的数,可以用普通方法定义,也可以使用科学计数法,记住小数之间不能随意比较大小
<?php //定义浮动类型 $v1=3.33; echo $v1;//3.33 //科学计数法 $v2=1.22E+9; echo $v2;//1220000000 ?>
<?php if(0.7-0.3==0.4){ echo 'yes'; }else{ echo 'no'; } //输出结果是no,说明不能随意的对两个小数点进行比较大小 ?>
- boolean 两个数ture或者false,成立或者不成立
- string 字符串就是使用单引号或者双引号括起来的0个或者多个字符
①使用单引号定义的字符串
能够被转义的字符有 \\(反斜杠) \'(单引号)
单引号定义的字符串的变量不能解析其值
<?php $num=10; //单引号定义的字符串 $strA='Act\\ions spe\'ak louder than words$num'; echo $strA;//Act\ions spe'ak louder than words$num ?>
②使用双引号定义的字符串
能够被转义的字符有 \''(双引号) \t (tab符) \r (回车符) \n(换行符) \\ (反斜杠) \$($符)
双引号定义的字符串中的变量的值可以被解析
<?php $num=10; //双引号定义的字符串 $strB="Act\\ions spe\"ak lou\$der than words$num"; echo $strB;//Act\ions spe"ak lou$der than words10 ?>
③heredoc定义的字符串是定义大段文本
2.复合数据类型
- array 数组,分为索引数组(下标是索引)和关联数组(下标是字符串)
- object 对象
3.特殊数据类型
- null 只有一个值null
- resource 资源数据类型是一个特殊的变量,程序员没有办法直接定义一个资源,必须使用PHP提供的获取资源的函数
二、数据类型的转换
- 自动转换
- 强制转换
①(integer)变量 ------将数据类型强制转为整型
②(float)变量------将数据类型强制转为浮点型
③(array)变量------将数据类型强制转为数组类型
④(object)变量------将数据类型强制转为对象类型
⑤(string)变量------将数据类型强制转为字符串类型
⑥(boolean)变量或者(bool)变量------将数据类型强制转为布尔类型
<?php $v1=10; $v2=0; $v3=''; $v4='0'; $v5=[]; $v6=null; $v7=0.0; var_dump((boolean)$v1);//bool(true) var_dump((boolean)$v2);//bool(false) var_dump((boolean)$v3);//bool(false) var_dump((boolean)$v4);//bool(false) var_dump((boolean)$v5);//bool(false) var_dump((boolean)$v6);//bool(false) var_dump((boolean)$v7);//bool(false) // 0、0.0、字符空、字符0、空数组、null都是等效于布尔false的值 ?>
三、数据类型的判断
- is_数据类型(变量)----判断是否为哪种数据类型(8类)
- is_scalar(变量)---------判断是否为标量(4类)
- isset(变量)----------用于判断是否有设置值(判断变量是否为null)
<?php $v1=10; $v2=0; $v3=''; $v4='0'; $v5=[]; $v6=null; $v7=0.0; $v8=false; var_dump(isset($v1));//bool(true) var_dump(isset($v2));//bool(true) var_dump(isset($v3));//bool(true) var_dump(isset($v4));//bool(true) var_dump(isset($v5));//bool(true) var_dump(isset($v6));//bool(false)----只要null才返回true var_dump(isset($v7));//bool(true) var_dump(isset($v8));//bool(true) var_dump(isset($v9));//bool(false)-----变量未定义,等同于null ?>
- empty(变量)------用于判断变量是否为空,这里的空等效于布尔false的值都认为是空,如果是空,返回true
<?php $v1=10; $v2=0; $v3=''; $v4='0'; $v5=[]; $v6=null; $v7=0.0; $v8=false; var_dump(empty($v1));//bool(false) var_dump(empty($v2));//bool(true) var_dump(empty($v3));//bool(true) var_dump(empty($v4));//bool(true) var_dump(empty($v5));//bool(true) var_dump(empty($v6));//bool(true) var_dump(empty($v7));//bool(true) var_dump(empty($v8));//bool(true) var_dump(empty($v9));//bool(true) ?>