php get 数据类型,PHP的数据类型

本文详细介绍了PHP中的数据类型,包括标量类型(字符串、整数、浮点数、布尔)、复合类型(数组)、特殊类型(空类型、资源类型)。讲解了各种类型的特点、表示方式、转换方法及注意事项,如浮点数的不精确性、字符串中的变量插入等。此外,还讨论了如何判断和转换数据类型,以及如何利用isset()和empty()进行变量状态检查。
摘要由CSDN通过智能技术生成

数据类型的分类

1.标量类型

也可以理解为简单类型、基本类型。包含以下4种类型:

字符串 string

整数类型 int

浮点类型   float  double

布尔类型   bool    boolean

2. 复合类型

数组

对象

3. 特殊类型

空类型null: 有且只有一个数据可以使用,那就是null。

资源类型resource:表示一种外部的可供php使用(操作)的资源(比如图片,数据库,文件等)。

整型数据类型

1.四种书写形式

10进制形式:$a = 123;

8进制形式:$b = 0123;      // 以0开头,只能出现0-7这8个数字

16进制形式:$c = 0x12A34   //  以0x开头,可以出现0-9,A-F这16个数字

2进制形式:$d = 0b1011011010;     // 以0b开头,只能出现0和1这2个数字

bd34c3c6ec4da8282cc2781bf99efb10.png

2.进制之间的相互转换

通过函数来进行转换。

10进制转2、8、16进制

decbin():将10进制转为2进制

decoct():将10进制转为8进制

dechex():将10进制转为16进制

2、8、16进制转换成10进制

bindec():将2进制数字字符串转为10进制

octdec():将8进制数字字符串转为10进制

hexdec():将16进制数字字符串转为10进制

浮点数据类型

浮点数就是相当于数学上的“小数”

两种书写形式:

常规形式(带小数点):

$f1 = 0.1;   //或者1.23;   123.0;

科学计数法形式(带e):

$f2 =1.23e3;  //表示1.23 乘以10的3次方

$f3 = 123e2;  //这个也是浮点数,虽然其结果值是一个“整数”(12300)

特别注意:浮点数不要随便做相等比较(==):因为浮点数进行相等比较,是“不可靠”的:

$v1 = 0.1 + 0.2;

$v2 = 0.3;

问:$v1和$v2相等吗?

那怎么办?

需要在考虑精度的基础上,将浮点数转换为整数,然后进行“比较大小”,此时,在精度范围内,如果相等,我们                      就认为是相等的。将上述程序改造为:

02479a0a483a4a232a17413ea0aa1372.png

布尔类型boolean

只有两个数据值: true,  false(不区分大小写)

在需要当做“布尔值”进行判断或比较的时候,以下数据会被当作布尔值的  false:

false,  0,  0.0,  “”,   null,  ‘0’,  空数组

其余都被当做布尔值的 true。

字符串string

可以使用单引号或双引号来表示(引起来)。

表示一串“连续的字符”,最短的字符串是“空字符串”,比如: $str1  =  “”。

注意:这个不是空字符串:  “  ”,  因为其中包括了1个空格字符。

$name  = “张三”;

$edu = ‘北京大学’;

$title = “关于微信应用的几个改进建议”; //文章标题

$v1 = ‘’;  //这也是字符串(空字符串), 跟null不同!!!

$v2 = ‘123’;  //这还是字符串

$v3 = “false”;  //这仍然是字符串

特别注意:

双引号字符串中,如果出现“$”符号,则该符号后的连续字符(单词)会被识别为一个变量名。

如果识别成功(即确实存在该变量),则会将该变量转换为实际内容。

如果识别失败(即实际没有该变量),则会报错。

数组类型array

数组,就是将多个“数据”放在一起,排成一个有序序列,这个序列作为一个整体(里面包括了多个数据),就称                     为“数组”。比如:

$info1  =  array(‘张三丰’,  18,  “男” );

//新版本中,还可以这样写: [‘张三丰’,  18,  “男” ]

或: $info2  =  array(‘name’ => ‘张三丰’,  ‘age’=>18,  ‘gender’ => “男” );

空类型NULL

只有一个值: null(不区分大小写)。

$v1 = null; //此时,具有变量$v1,但其中的数据是“空的”(没有数据)

空值变量,isset()判断的结果是false(即不存在)。

类型判断

gettype(): 获取一个变量的类型,结果为一个变量类型的名称(字符串)

$v1 = 10;

$r1 = gettype( $v1 ); //结果为:“integer”

$v2 = ‘abc’;

$r2 = gettype( $v2 ); //结果为:“string”

$v3 = 1.23;

$r3 =gettype( $v3 ); //结果为:“double”(返回的是double,但其实就是我们所说的float类型)

settype(): 设置一个变量的类型

$v1 = 10;  //此时,$v1中数据是整数类型

settype( $v1,  ‘string’); //此时,$v1是字符串类型,即其中的数据变成了:“10”

echo  gettype( $v1 ); //”string”

var_dump(): 输出变量的“完整信息”,包括变量类型,长度(如果需要),内容

3b058eef8afdcf8e1824e2ad2038f06a.png

判断是否为某种类型(类型系列函数):

is_int() / is_integer():判断是否为整数类型

is_float():判断是否为浮点类型

is_bool():判断是否为布尔类型

is_string():。。。

is_array():。。。

is_numeric():判断是否为“数字”类型(含整数,小数,以及“纯数字字符串”)

is_object():

两个特殊判断:

isset(): 判断一个变量是否存在,或变量中是否有数据,有则返回true,否则返回false。

如果变量中有数据,返回true

如果变量中没有有数据,返回false

empty():判断是否为“空的”。如果确实是“空的”,返回true,否则返回false。

如果变量中的数据为空的,返回true

如果变量中的数据不是空的,返回false

“              空的”的意思,比较接近日常生活中的“没有”。以下值都是空的(empty):

0, 0.0, “”, “0”, false, array(), //这几项,empty判断的结果都是true

而空(null)是一个计算机中的特殊概念,表示“完全不存在”,可以理解为“真空”。

类型转换

1 自动转换

我们无需做任何处理,而是,程序会根据运算时运算符所需要的数据类型进行转换。

如果参与运算的数据不是需要的类型,则会自动转换为需要的数据类型。

$v1 = 1 + “3”; //结果是4;

$v2 = 1  .  “3”; //“.”是字符串连接符,这里,1会被转换为字符串,结果是:“13”

典型自动转换:

转换为数字:

1+”2”   //3

“1” + “2”   //3

1 + ”2abc”  //3

1 + ”2abc34”  //3

1 + “abc”   //1

1 + “abc2”  //1

1.2 + “2”   //3.2

1.2 + “2.2abc”  //3.4

1.2 + “abc2.2”  //1.2

“1.2abc” + 2  //3.2

“1.2abc” + “2abc” //3.2

规律:一个字符串当做数字,就会将该字符串的最前面的数字转换为数字值,如果没有,就为0

转换为整数(直接保留整数部分):

10.8  %  3.6   // 先两边取整,再取余  1

“10.8”  %  “3.6”

“10.8”  %  “3.6abc”

“10.8ab”  %  “3.6cd”

2 强制转换

人为使用强转换语法进行转换,比如:

$v1 =(int)“1”; //结果,$v1是整数类型的1

$v2 = (float)  “1.23”; //结果,$v2是浮点类型的1.23

$v3 =(string) $v1; //结果,$v3是字符串“1”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值