PHP数据类型

华子目录

  • 数据类型
  • PHP的八种数据类型
    • 基本数据类型,4类
    • 复合数据类型,2类
    • 特殊数据类型,2类
  • 类型转换
    • 在PHP中有两种类型转换方式
      • ==其他类型==转==bool类型==
      • ==其他类型==转==数值类型==
      • 实例
  • 类型判断
  • 获取和设定变量类型
    • 获取gettype(变量名)
    • 设置settype(变量名,类型)
  • 整数类型
  • 浮点类型
    • 定义浮点类型
  • bool类型

数据类型

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

PHP的八种数据类型

基本数据类型,4类

  • 整形:int,系统分配4个字节存储
  • 浮点型:float/double,系统分配8个字节存储
  • 字符串类型:string,系统根据实际长度分配,表示字符串(使用引号)
  • 布尔类型:bool/boolean,表示布尔类型,只有两个值:true和false

复合数据类型,2类

  • 对象类型:object,存放对象(面向对象)
  • 数组类型:array,存储多个数据(一次性)

特殊数据类型,2类

  • 资源类型:resource,存放资源数据(PHP外部数据,如数据库,文件等)
  • 空类型:NULL,只有一个值就是NULL(不能运算)

类型转换

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

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

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

  • 强制(手动)转换:根据需要手动转换

    • 强制转换规则:在变量之前增加一个括号(),然后再里面写上对应的类型,如int,其中NULL类型使用unset()
  • 在转换过程中,用的比较多的就是转布尔类型(判断)和转数值类型(算术运算)

其他类型bool类型

在这里插入图片描述

其他类型数值类型

  • 布尔true为1,false为0
  • 字符串转数值有自己的规则
    • 字母开头的字符串,永远为0
    • 数字开头的字符串,直到遇到字符串为止(不会同时包含两个小数点)

实例

在这里插入图片描述

类型判断

  • 通过一组类型判断函数来判断变量返回这个变量所保存的数据类型(返回值为bool类型)。(只要返回的结果为bool类型,都可以使用var_dump进行输出打印
  • 是一组以is_开头后跟类型名的函数,如is_int(变量名),is_string(变量名)
  • 返回的bool值不能用echo查看,可以使用var_dump()函数查看
    • var_dump(变量名)自带打印结果

在这里插入图片描述

获取和设定变量类型

  • 有一组函数可以用来获取和设定数据的类型

获取gettype(变量名)

  • gettype(变量名),获取类型,返回的是变量对应的类型名

在这里插入图片描述

设置settype(变量名,类型)

  • settype(变量名,类型)设定数据类型,与强制转换不同
    • 强制转换是对数据值复制后的内容进行处理(不会修改原来的值的性质
    • settype会直接改变原本的数据本身
    • settype设置成功,返回bool

在这里插入图片描述

整数类型

  • 整数类型:保存整数数值(范围限制),4个字节存储数据,最大就是32位:42亿多。但是在PHP中默认是有符号类型(区分正负数)
  • 在PHP中提供了四种整型的定义方式:十进制定义,二进制定义,八进制定义和十六进制定义
    • $a = 120; 10进制
    • $a=0b110; 2进制 2+4=6
    • $a=0110 8进制 8+64=72
    • $a=0x110 16进制 16+256=272

在这里插入图片描述

  • 默认PHP输出数值时,会自动转换成10进制输出

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

    • decbin()10进制转2进制
    • decoct()10进制转8进制
    • dechex()10进制转16进制
    • bindec()2进制转10进制

在这里插入图片描述

浮点类型

  • 浮点型:小数类型以及超过整型所能存储范围的整数(不保证精度),精度范围大概在15个有效数字左右

定义浮点类型

  • $f1=1.23;
  • $f2=1.23e2 科学计数法,结果为123

在这里插入图片描述

bool类型

  • 布尔类型:两个值true和false,通常是用于判断比较

在这里插入图片描述

  • 在进行某些数据判断的时候,需要特别注意类型转换
  • empty() 判断数据的值是否为“空”,如果为空返回true,不为空返回false
  • isset() 判断数据存储的变量本身是否存在,存在变量返回true,不存在返回false

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM+Jsp+Mysql的个性化影片推荐系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

【SCI绘图】【曲线图系列2 python】多类别标签对比的曲线图

SCI,CCF,EI及核心期刊绘图宝典,爆款持续更新,助力科研! 本期分享: 【SCI绘图】【曲线图系列2 python】多类别标签对比的曲线图,文末附完整代码。 1.环境准备 python 3 import proplot as pp…

基于离散差分法的复杂微分方程组求解matlab数值仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于离散差分法的复杂微分方程组求解.“连续微分方程”到“离散微分方程”到“差分方程”,离散微分方程,变成差分方程。建立差分方程时&am…

【Java EE】SpringBoot的创建与简单使用

文章目录 🍀环境准备🌳Maven🌲SpringBoot是什么🎄Spring Boot 项目创建🌸使用Idea创建🌸创建SpringBoot项⽬🌸SpringBoot项目的运行 ⭕总结 🍀环境准备 如果你的IDEA是专业版&#…

C++数据结构与算法——回溯算法分割问题

C第二阶段——数据结构和算法,之前学过一点点数据结构,当时是基于Python来学习的,现在基于C查漏补缺,尤其是树的部分。这一部分计划一个月,主要利用代码随想录来学习,刷题使用力扣网站,不定时更…

Redis常用命令补充和持久化

一、redis 多数据库常用命令 1.1 多数据库间切换 1.2 多数据库间移动数据 1.3 清除数据库内数据 1.4 设置密码 1.4.1 使用config set requirepass yourpassword命令设置密码 1.4.2 使用config get requirepass命令查看密码 二、redis高可用 2.1 redis 持久化 2.1.1 持…

【51单片机入门记录】A/D D/A转换器概述

目录 一、A/D D/A转换器简介 (1)模数转换器-ADC (analogue-to-digital conversion) (2)数模转换器-DAC(digital-to-analogue conversion) (3)应用场景 二…

用于AGV物流机器人的爱普生陀螺仪传感器XV7000系列

适用于AGV物流机器人的爱普生陀螺仪传感器XV7000系列:XV7001BB,XV7011BB。以前我们都知道XV7001BB,XV7011BB适用于扫地机器人,其实对于AGV物流机器人来说,XV7000系列生陀螺仪传感器也是其中重要一环。AGV机器人又叫做AGV搬运机器人…

C#手术麻醉信息系统源码,技术框架:Vue,Ant-Design+百小僧开源框架

C#手术麻醉信息系统源码,技术框架:Vue,Ant-Design百小僧开源框架 手术麻醉系统主要用于在手术过程中监测和控制患者的状态,确保手术的顺利进行并保障患者的生命安全。该系统通过一系列先进的医疗设备和技术,为手术患者…

AopContext.currentProxy() 的代理对象错误(未被更新)问题

背景: 原来在springAOP的用法中,只有代理的类才会被切入,我们在controller层调用service的方法的时候,是可以被切入的,但是如果我们在service层 A方法中,调用B方法,切点切的是B方法,…

【C++】STL--vector

目录 vector的使用 vector的定义 vector iterator的使用 vector空间增长问题 vector增删查改 vector深度剖析及模拟实现 vector核心接口模拟实现 使用memcpy拷贝问题 迭代器失效问题 vector的使用 vector的定义 C中,vector是一个模版,第一个参…

2024.4.5-[作业记录]-day10-CSS 布局模型(层模型)

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 作业 2024.4.5-学习笔记1 CSS定位1.1 相对定位 relative1.2 绝对定位 absolut…

python 进度条如何控制

首先,我们需要创建一个新的python文件,点击工具栏上方的file按钮,然后在弹出的选项中选择新建,找到如图所示的新建python file,创建一个新文件。 按照提示给我们的新文件命名,然后在创建的文件中输入我们需…

C++——位图和布隆过滤器

在C中,哈希这种思想的应用场景有很多,位图就是其中的一种。 位图 位图:位图是一种哈希思想的产物,可以通过它来对数据进行快速的查找的方法,在位图中,有2种状态来表示在或者不在,即1/0。 位图…

刷题日记——由浅入深的大数加法(高精度加法)

例题 代码 #include <cstdio>int main(){long long a,b;scanf("%lld %lld",&a,&b);printf("%lld\n",ab);}例题——高精度加法 编程计算&#xff1a;12345678912345678912121211231212121212121212121222222111112121&#xff1f; 分析 加…

来个自定义的电子木鱼吧

<!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1"><title>自定义木鱼</title> </head> <body style"background-…

题目:小怂爱水洼(蓝桥OJ 4234)

问题描述&#xff1a; 解题思路&#xff1a; 记录每个格子的水量&#xff0c;再比较找最大水量。计算水量使用dfs。 注意点&#xff1a;属于同一个水洼的每个格子&#xff0c;只需要计算一次dfs就好了&#xff0c;因为每个格子的dfs都相同 。 代码&#xff1a; #include <b…

VLAN间路由

部署了VLAN的传统交换机不能实现不同VLAN间的二层报文转发&#xff0c;因此必须引入路由技术来实现不同VLAN间的通信。VLAN路由可以通过二层交换机配合路由器来实现&#xff0c;也可以通过三层交换机来实现&#xff1b; VLAN间通讯限制 每个VLAN都是一个独立的广播域&#xff…

如何获取 Microsoft 365 Copilot

您已观看视频&#xff0c;也听到了相关讨论&#xff0c;您迫不及待地想要使用 Microsoft 365 Copilot。但在哪里可以找到它&#xff1f;何时可以使用它&#xff1f;本文提供详细信息。 可以执行哪些操作&#xff1f; Microsoft 365 Copilot 将无缝集成在用户每天使用的应用当…

rust 面向对象编程特性、模式与模式匹配、高级特征

面向对象编程OOP 学习了结构体、枚举&#xff0c;它们可以包含自定义数据字段&#xff0c;也可以定义内部方法&#xff0c;它们提供了与对象相同的功能。 面向对象的四大特征&#xff1a;封装、继承、多态 通过pub标记为公有的结构体&#xff0c;在其他模块中可以访问使用这…