关于php8的数据类型转换

发布时间:2024年01月20日

目录

1、数据类型介绍

1.1 简单数据类型:

1.2 复合数据类型:

1.3 特殊数据类型:

2、数据类型转换

??????? 2.1 自动转换:

??????? 2.2 强制(手动)转换:

3、验证数据类型途径

(1)var_dump(is_int($a)):

(2)var_dimp(is_float($a)):

(3)gettype(变量名):

(4)settype(变量名,"类型"):


1、数据类型介绍

1.1 简单数据类型:

????????1.1 整形:

????????????????int / integer,分配4个字节存储(整形超过最大内存会成为浮点型)

????????1.2 浮点型:

????????????????floar / double,分配8个字节存储(不建议用浮点型做精确判断)

??????? ????????定义方法:$a = 1.23 或 $1 = 1.23e10(可以采用科学计数法)

????????1.3 字符串类型:

????????????????string,根据实际类型分配长度,表示字符串/

????????1.4 布尔类型:

????????????????bool / boolean,表示布尔类型,通常用于判断,只有两个值,true和false

??????????????? 布尔类型结果使用var_dump()执行,判断数据是否为空使用empyt(),判断数据存储的变量本身是否存在isset()。

1.2 复合数据类型:

??????? 对象类型:object,存放对象(面向对象)

??????? 数组类型:array,存储数据(一次性)

1.3 特殊数据类型:

??????????????? 资源类型:resourse,存放资源数据(PHP外部数据,如数据库、文件)

??????????????? 空类型:只有NULL(不能运算)

???????

2、数据类型转换

??????? 2.1 自动转换:

??????????????? 系统根据需求自主判断并自主转换(常用但效率较低)

??????? 2.2 强制(手动)转换:

??????????????? 规则:在变量之前增加一队括号(),然后在里面写上对应的数据类型。

??????????????? 转换前说明:

??????????????? ????????布尔值:true为1,false为0

??????????????? ????????以字母开头的字符串,永远为0

??????????????? ????????以数字开头的字符串,取到字符串为止(不会同时包含两个小数点)

??????????????? 转换执行:

??????????????? 字符型 转化 浮点型,并计算:

<?php

$a = 'abc1.1.1';     //定义字符串a
$b = '1.1.1abc';     //定义字符串b

    
//强制(手动)转换
//字符串a转换浮点型为0
//字符串b转换浮点型为1.1

echo (float)$a + (float)$b;    //强制(手动)转换类型

??????????????? 由于字符串a以字母开头,转换浮点型为0,所以正确结果为:1.1

3、验证数据类型途径

(1)var_dump(is_int($a))

判断变量a是否为Int整型,并返回布尔值:

echo "判断变量a是否为整型:";
echo var_dump(is_int($a));
echo "<hr>";

?

(2)var_dimp(is_float($a))

判断变量a是否为float浮点型,并返回布尔值:

echo "判断变量b是否为整型:";
echo var_dump(is_int($b));
echo "<hr>";

?

(3)gettype(变量名)

获取类型,得到的该类型对应的字符串:

echo "当前变量a的数据类型转换是:";
echo gettype($a);  //直接获取结果

???

(4)settype(变量名,"类型")

设定数据类型,使用var_dump()验证其转换是否成功“:

echo "全局设定变量a的数据类型";
echo var_dump(settype($a,'int'));  //嵌套var_dump()获取转换结果
echo "<hr>";

文章来源:https://blog.csdn.net/qq_44846097/article/details/135680747
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。