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查漏补缺,尤其是树的部分。这一部分计划一个月,主要利用代码随想录来学习,刷题使用力扣网站,不定时更…

算法基本概念

算法基本概念 算法的定义 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 算法的特性 输入:算法具有0个或多个输入输出:算法至少有一个或多个输出有穷性确定性可行性 算…

设计模式(14):命令模式

介绍 将一个请求封装为一个对象,从而使我们可用不同的请求对象客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。也称之为:动作Action模式,事务transaction模式。 命令模式角色 抽象命令类(Comman…

VS CODE环境安装和hello world

SAP UI5 demo walkthrough tutorial step1 hello word 首先要安装nodejs,然后才能执行下面的操作 nodejs vscode 安装ui5npm install --global @ui5/cli报错解决: idealTree:npm: sill idealTree buildDeps 这个信息说明npm正在构建,如一直停留在这个界面,检查下网络,例如…

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方法,…

Java 元素排序(数组、List 集合)

数组元素排序 升序 int[] array {3, 1, 4, 5}; Arrays.sort(array);// 升序排序 System.out.println(Arrays.toString(array)); //输出:[1, 3, 4, 5]降序 可以先将数组元素存入 List 集合,然后集合元素逆序,最后将集合元素写回原数组。&a…

助力第十五届蓝桥杯单片机省一——模块之eeprom

蓝桥杯比赛倒计时第8天 今天写的是蓝桥杯模块————AT24C02,主要讲一下如何对一个整型的数据进行存储,相信各位省一选手对一个char型的数组读取已经了如指掌了,所以就不再这里进行讲解了。 一、eeprom写入函数 void write_myepprom(unsigned char a…

JavaScript 事件流

JavaScript与HTML之间的交互是通过事件实现的,而用户与浏览器页面的互动也是通过事件来实现的事件就是文档或浏览器窗口中发生的一些特定的交互瞬间,所以分为两种事件,一是发生在 浏览器对象(BOM)上的事件,…

【C++】STL--vector

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

JavaScript实现跑马灯效果

一段简单的代码&#xff0c;实现类似公司大屏幕上“欢迎XX领导莅临指导”&#xff0c;在JavaScript中可以轻松实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head>…

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

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

python 进度条如何控制

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