一、PHP数据类型
1、数据类型的分类
①、标量(scalar)数据类型
int    整型
float   浮点型
boolean   布尔型
string   字符串
②、复合数据类型
array   数组
object   对象
③、特殊数据类型
null   null
resource   资源类型
2、数据类型之整数(int)类型
①、十进制
$v=255;
②、八进制
以0开头,并且不能有超过7的数字
③、十六进制
以0x开头,包含0~9,a~f
示例:
八进制,十六进制都会自动转化为十进制
313.png

3、数据类型之浮点(float)类型
带有小数点的数就是浮点类型
小数有两种表示形式:
普通方式:
科学计数法:
示例:
314.png

小数存在精度丢失问题
315.png
所以不要在计算机中比较两个小数的大小
4、数据类型之字符串(string)类型
①、使用单引号的字符串
能够被转义的字符有\\ \
单引号定义的字符串中的变量不能解析其值
②、使用双引号的字符串
能够被转义的字符\" \t \r \n \$
双引号定义的字符串的变量的值可以被解析。
示例:
316.png

317.png

319.png

③、如果字符串引号中需要解析的变量后,紧跟其他东西,这时需要{}来将变量分离
320.png

321.png

④、heredoc
也是使用双引号定义字符串的,主要应用于定义场景大段的字符串
语法:

$heredoc =<<<开始标记
大段内容
结束标记;

注意:结束标记必须顶格写,否则报错,变量名以及标记名可以自己定义。
如图所示:
322.png

323.png
转义符:\
用于将程序语言所赋予的某些字符功能的特殊功能转义掉。
输出不可见空白字符
转义符能够转义的字符(如图):
318.png

5、数据类型之布尔(bool)类型
true 成立
false 不成立
6、数据类型之数组(array)类型
①、索引数组
数组元素的下表就是数值,这样的数组是索引数组
②、关联数组
数组元素的下标是字符串,这样的数组就是关联数组
数组元素的访问:
如果访问索引数组,就是[0]、[1]等
如果访问关联数组,如:['age']、['names']等
使用print_r可以输出数组,如$_SERVER就是一个数组,如下:
324.png

输出数组中的某个元素
语法:数组名[数组下标或者字符串],如输出$_SERVER中的SERVER_PORT,如下:
325.png

326.png

327.png
如果在字符串中访问数组元素SERVER_PORT的话,如下
①、字符串中数组元素不用加''符号
328.png
②、或者在数组外加{ }符号,再加‘’符号
329.png
7、数据类型之null类型
null类型只有一个值, null
8、数据类型之资源类型
resource类型
资源类型你给是一个特殊的变量,程序员没有办法直接定义一个资源,必须使用php提供的获取资源的函数
了解:
330.png
二、数据类型的转换
数据就是用于运算,当参与运算的两个数据,类型不同时,php会自动转换
有时我们也会强制转换
1、自动转换
331.png
2、强制转换
(integer)变量   将其他数据强制转换为整型
(float)变量   将其他数据强制转换为浮点型
(array)变量   将其他数据强制转换为数组
(object)变量   将其他数据强制转换为对象
(string)变量   将其他数据强制转换为字符串
(boolean)变量   将其他数据强制转换为布尔值
例:
332.png

333.png

说明:0、 0.0、空字符、字符0、空数组、null等效于布尔false的值。
三、数据类型的判断
判断函数的格式规律:
is_int(v);
is_string(v);
is_bool(v);
is_float(v);
is_scalar(v); 判断变量类型是否是int、string、bool、float
is_array(v);
is_object(v);
is_resource(v);
is_null(v);
例:
334.png
isset(v) 用于判断是否有设置值(判断变量是否为null值)
示例:
335.png
empty(v)用于判断变量v的值是否为“空”,此处的空即等效于布尔值false的值,empty都会认为是空。如果是空,则返回值是true,否则返回false。
示例:
336.png