【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
    //创建数据
    $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结构查看

var_dump(变量名)

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

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


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

代码:

<?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():二进制转十进制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/442795.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32H750片外QSPI启动配置简要

STM32H750片外QSPI启动配置简要 &#x1f4cd;参考信息源&#xff1a;《STM32H750片外Flash启动(W25Q64JVSIQ)》&#x1f516;本例程基于Keil MDk开发平台。&#x1f341;配置框架&#xff1a; ✨为什么使用要使用QSPI启动方式 不管对于STM32H7系列单片机&#xff0c;还是其他…

VGG:更小的卷积核

“paddingvalid”&#xff0c;表示不对输入数据进行填充(不填充)“paddingsame”&#xff0c;表示对输入数据进行填充&#xff0c;使得输出特征图的大小与输入特征图的大小相同 VGG16 网络架构 Why VGG16 VGG16 卷积层 全连接层层数 1个输出层 更小的卷积核 连续的33卷积…

换手机后日记不见了怎么恢复?换手机日记内容同步方法

曾经&#xff0c;我使用的是一款苹果手机&#xff0c;这部手机陪伴了我整整3年。随着时间的推移&#xff0c;手机内存不够用成为了我面临的一个大问题&#xff0c;因此我决定更换一部新手机——这次我选择了OPPO品牌。在更换手机的过程中&#xff0c;我利用手机搬家软件一键同步…

AI辅助研发对医药、汽车和电子行业的影响

目录 1、医药行业&#xff1a;加速药物发现与开发 2、汽车行业&#xff1a;创新设计与生产 3、电子行业&#xff1a;优化芯片设计 4、展望未来 AI辅助研发正逐渐改变我们的世界&#xff0c;特别是在医药、汽车和电子等关键行业中的应用&#xff0c;已经展现出其巨大潜力。本…

支付宝开放平台,证书验签出错,请确认charset参数放在了URL查询字符串中且各参数值使用charset参数指示的字符集编码

#小李子9479# 支付宝证书接入方式的时候出现如下错误 验签出错&#xff0c;请确认charset参数放在了URL查询字符串中且各参数值使用charset参数指示的字符集编码 产生的原因分析&#xff1a; 1。验证签名里面有中文 2。在json_encode的时候使用了JSON_UNESCAPED_UNICODE参数…

【字符串】【贪心】【 树状数组】2193. 得到回文串的最少操作次数

作者推荐 视频算法专题 本文涉及知识点 字符串 贪心 树状数组 分类讨论 LeetCode2193. 得到回文串的最少操作次数 给你一个只包含小写英文字母的字符串 s 。 每一次 操作 &#xff0c;你可以选择 s 中两个 相邻 的字符&#xff0c;并将它们交换。 请你返回将 s 变成回文串…

mysql-DBA(2)-日志-数据库复制

1.mysqlbinlog 查看日志-精确查找-增量备份 1.1查看日志 mysqlbinlog binlog.000003 -vv --base64auto | less //两种都有 base64加密和看的懂的明文 mysqlbinlog binlog.000003 -vv --base64never | less //不显示 mysqlbinlog binlog.000003 -vv --base64decode-rows …

Flask python开发篇: 写一个简单的接口

第一步&#xff1a;新建flask项目 参考使用pycharm新建一个项目 打开pycharm&#xff0c;根据下面图中箭头顺序&#xff0c;新建一个flask的项目&#xff1b; 第二步&#xff1a;运行项目&#xff0c; 安装成功以后&#xff0c;会有个app.py文件&#xff0c;打开以后&#…

STM32CubeIDE基础学习-STM32CubeIDE软件程序下载方法

STM32CubeIDE基础学习-STM32CubeIDE软件代码下载方法 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件代码下载方法前言第1章 代码下载第2章 下载器固件更新总结 前言 编写完代码&#xff0c;一般都会选择在线下载程序的方式进行验证该程序是否正确&#xff0c;如果发现结果和…

回收站选址(CCF 201912-2)解题思路

分析 把x,y坐标拼接成一个字符串&#xff08;x,y&#xff09;作为Set的key&#xff0c;保存到Set中&#xff0c;遍历Set&#xff0c;取出坐标&#xff0c;然后判断上下左右四个点是否在Set中&#xff0c;如果在&#xff0c;进而判断&#xff0c;四个角是否在Set中&#xff0c;…

搜索引擎推广6种策略助你站在市场顶峰的有效方法-华媒舍

如何有效推广自己的产品或服务变得至关重要。6种引擎霸屏推广策略是帮助你站在市场顶峰的有效方法&#xff0c;下面将逐一介绍这些策略。 1.搜索引擎优化&#xff08;SEO&#xff09; 搜索引擎优化是提升网站在搜索引擎结果页&#xff08;SERP&#xff09;中排名的策略。通过…

股票价格预测项目

项目介绍 背景 股票价格预测一直是金融领域的热点问题。准确的预测可以帮助投资者作出更明智的决策。本项目旨在使用机器学习技术&#xff0c;特别是长短期记忆网络&#xff08;LSTM&#xff09;&#xff0c;来预测股票价格。 目标 开发一个基于LSTM的股票价格预测模型。使…

Mamba-minimal Mamba的最小限度实现 (二)

文章目录 链接导入所需包class ModelArgsclass Mambadef __ init __def forward class ResidualBlockclass RNSNorm文本生成demo manba的简单最小限度实现&#xff0c;和原始论文实现 state-spaces/mamba (github.com)相比&#xff0c;为了可读性对参数没有很好的初始化&#…

c++ 常用的STL

前言 写这篇博客目的是为了记录在刷算法题中使用过的STL&#xff0c;因为有些不太常用的会遗忘。这篇博客只是作为笔记&#xff0c;不是详细的STL&#xff0c;因此只会对常用方法说明&#xff0c;不会详细介绍。此外在后面用到新的STL内容时会再补充。 列队 基础列队 基本列…

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架)

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架) 大语言模型 (Large Language Models, LLMs) 在不同领域都表现出了优异的性能。然而&#xff0c;对于非AI专家来说&#xff0c;制定高质量的提示来引导 LLMs 是目前AI应用领域的一项重要挑战。现有的提示…

ARM/Linux嵌入式面经(二):芯片原厂

uart如何进行通信&#xff0c;模块发给uart数据信息后经历了什么 UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff0c;通用异步收发传输器&#xff09;是一种用于串行通信的协议&#xff0c;它使用一对传输线&#xff08;TX和RX&#xff09;进行双向通信…

阿里云服务器地域所在城市分布表_北京杭州深圳及全球区域

2024年最新阿里云服务器地域分布表&#xff0c;地域指数据中心所在的地理区域&#xff0c;通常按照数据中心所在的城市划分&#xff0c;例如华北2&#xff08;北京&#xff09;地域表示数据中心所在的城市是北京。阿里云地域分为四部分即中国、亚太其他国家、欧洲与美洲和中东&…

Autodl中tar.gz无法解压问题

在云服务器中&#xff0c;我们常把文件压缩转移至其他实例中&#xff0c;但是我们有时会发现&#xff0c;压缩可以但是解压缩却遇到了问题&#xff0c;下面给出了正确的压缩和解压指令。 1 压缩 tar -cvf archieve.tar.gz aaa(archieve.tar.gz为压缩后的压缩包名称&#xff0c…

【Java.mysql】——增删查改(CRUD)之 增查(CR) 附加数据库基础知识

目录 &#x1f6a9;数据库操作 &#x1f388;创建数据库 &#x1f388;使用数据库 &#x1f388;删除数据库 &#x1f6a9;数据类型 &#x1f6a9;表的操作 &#x1f388;创建表 &#x1f308;查看表结构 &#x1f388;删除表 ❗练习(综合运用) &#x1f5a5;️新增…

【黑马程序员】STL实战--演讲比赛管理系统

文章目录 演讲比赛管理系统需求说明比赛规则程序功能 创建管理类功能描述创建演讲比赛管理类 菜单功能添加菜单成员函数声明菜单成员函数实现菜单功能测试 退出功能添加退出功能声明退出成员函数实现退出功能测试 演讲比赛功能功能分析创建选手类比赛成员属性添加初始化属性创建…