【PHP+代码审计】PHP基础——数据类型

复制代码
🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

一、数据类型简介

PHP的八种类型

类型转换

类型判断

二、整数类型


一、数据类型简介

数据类型:data type,在PHP中指的是存储的数据本身的类型,而不是变量的类型。PHP是一种弱类型语言,变量本身没有数据类型。

PHP的八种类型

在PHP中将数据分为三大类八小类:

简单(基本)数据类型:4个小类

整型:int/integer,系统分配4个字节存储,表示整数类型(有前提)

浮点型:float/double,系统分配8个字节存储,表示小数或者整型存不下的整数

字符串型:string,系统根据实际长度分配,表示字符串(引号)

布尔类型:bool/boolean,表示布尔类型,只有两个值:true和false

复合数据类型:2个小类

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

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

特殊数据类型:2个小类

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

空类型:NULL,只有一个值就是NULL(不能运算)

类型转换

类型转换:在很多的条件下,需要指定的数据类型,需要外部数据(当前PHP取得的数据),转换成目标数据类型

在PHP中有两种类型转换方式:

1、 自动转换:系统根据需求自己判定,自己转换(用的比较多,效率偏低)

2、 强制(手动)转换:认为根据需要的目标类型转换

强制转换规则:在变量之前增加一个括号(),然后在里面写上对应类型:int/integer....其中NULL类型用到unset()

在转换过程中,用的比较多的就是转布尔类型(判断)和转数值类型(算术运算)

其他类型转布尔类型:true或者false,在PHP中比较少类型换变成false

其他类型转数值的说明

  • 1、 布尔true为1,false为0;

  • 2、 字符串转数值有自己的规则

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

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

php 复制代码
<?php
    //创建数据
    $a = 'abc1.1.1';
    $b = '1.1.1.abc';

    //自动转换
    echo $a . $b;  //算术运算,系统先转换成数值型(整数型和浮点型),然后再进行运输。

    //强制转换
    echo '<br/>',(float)$a,(float)$b;

类型判断

通过一组类型判断函数,来判断变量,最终返回这个变量所保存数据的数据类型(相同结果为true,失败为false):是一组以is_开头后面跟类型名字的函数:is_XXX(变量名)

Bool类型不能用echo来查看,可以使用var_dump结构查看

php 复制代码
var_dump(变量名)

还有一组函数可以用来获取以及设定数据(变量)的类型

php 复制代码
gettype(变量名):获取类型,得到的是该类型对应的字符串

php 复制代码
Settype(变量名,类型):设定数据类型:与强制转换不同
  • 1、 强制转换(类型)变量名,是对数据值复制的内容进行处理(不会处理实际存储的内容)
  • 2、 settype会直接改变数据本身

代码:

php 复制代码
<?php
    //创建数据
    $a = 'abc1.1.1';
    $b = '1.1.1.abc';

    //自动转换
    echo $a . $b;  //算术运算,系统先转换成数值型(整数型和浮点型),然后再进行运输。

    //强制转换
    echo '<br/>',(float)$a,(float)$b;

    echo "<br/>";

    var_dump($a);
    echo "<br/>";
    var_dump(is_int($a));
    echo "<br/>";
    var_dump(is_string($a));
    echo "<hr/>";

    echo gettype($a),"<br/>";

    //设置类型
    var_dump(settype($a,"int"));
    echo "<br/>";
    echo gettype($a),$a;

二、整数类型

整数类型:保存整数数值(范围限制),4个字节存储数据,最大就是32位:42亿多。但是在PHP中默认是有符号类型(区分正负数)

在PHP中提供了四种整型的定义方式:十进制定义,二进制定义,八进制定义和十六进制定义

$a = 120; //10进制

$a=0b110; //2进制

$a=0120; //8进制

$a=0x120; //16进制

十进制:逢10进1,能够出现的数字是0-9

二进制:逢2进1,能够出现的数字是0-1

八进制:逢8进1,能够出现的数字是0-7

十六进制:逢16进1,能够出现的数字是0-9以及a-f,a表示10,依次类推

二进制到十进制之间的转换:从右侧开始,将对应的第几位作为2的指数,然后将所有的结果相加

PHP中不需要用户这么复杂的去计算,提供了很多的函数进行转换

  • Decbin():十进制转二进制
  • Decoct():十进制转八进制
  • Dechex():十进制转十六进制
  • Bindec():二进制转十进制
相关推荐
IT码农-爱吃辣条4 分钟前
Three.js 初级教程大全
开发语言·javascript·three.js
☺����33 分钟前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
染翰1 小时前
lua入门以及在Redis中的应用
开发语言·redis·lua
王者鳜錸1 小时前
PYTHON让繁琐的工作自动化-函数
开发语言·python·自动化
兔老大RabbitMQ2 小时前
git pull origin master失败
java·开发语言·git
tt5555555555552 小时前
C/C++嵌入式笔试核心考点精解
c语言·开发语言·c++
xiao助阵2 小时前
python实现梅尔频率倒谱系数(MFCC) 除了傅里叶变换和离散余弦变换
开发语言·python
朱皮皮呀2 小时前
Spring Cloud——服务注册与服务发现原理与实现
运维·spring cloud·eureka·服务发现·php
科大饭桶2 小时前
C++入门自学Day14-- Stack和Queue的自实现(适配器)
c语言·开发语言·数据结构·c++·容器
yuanpan3 小时前
ubuntu系统上的conda虚拟环境导出方便下次安装
linux·ubuntu·conda