当前位置: 首页 > news >正文

PHP快速入门06-类型转换

文章目录

  • 前言
  • 一、关于类型转换
    • 1.1 自动类型转换
    • 1.2 显式类型转换
  • 二、15个常用类型转化示例
    • 2.1 将字符串转换为整型
    • 2.2 将整型转换为字符串
    • 2.3 将浮点型转换为整型
    • 2.4 将整型转换为浮点型
    • 2.5 将布尔型转换为整型
    • 2.6 将整型转换为布尔型
    • 2.7 将字符串转换为浮点型
    • 2.8 将浮点型转换为字符串
    • 2.9 将数字字符串转换为浮点型
    • 2.10 将数字字符串转换为整型
    • 2.11 将布尔型转换为字符串
    • 2.12 将数组转换为字符串
    • 2.13 将字符串转换为数组
    • 2.14 将对象转换为数组
    • 2.15 将数组转换为JSON
  • 总结


前言

本文已收录于PHP全栈系列专栏:PHP快速入门与实战

一、关于类型转换

PHP的类型转换是指将一个变量类型转换为另一个变量类型的过程。 PHP支持自动类型转换和显式类型转换两种方式:

1.1 自动类型转换

PHP会自动根据需要将一个变量的类型转换为另一种类型。比如,当一个布尔值与一个整数相加时,布尔值会被转换成整数。在不同的运算中,PHP自动进行的类型转换有:

  • 数字转换:将字符串转换为数字,例如intval()函数;
  • 布尔转换:将其他类型转换为布尔类型,例如empty()函数;
  • 字符串转换:将其他类型转换为字符串,例如strval()函数;
  • 数组转换:将其他类型转换为数组,例如array()函数。

下面是自动类型转化的实例:

$num1 = "10";
$num2 = 5;
$sum = $num1 + $num2;
echo $sum; // 输出结果为15,$num1被自动转换为整型

1.2 显式类型转换

显式类型转换指使用特定的函数或操作符来明确地改变变量的类型。下面是PHP中常用的显式类型转换操作:

  • (int) 或 intval():将一个变量转换为整数类型;
  • (float) 或 floatval():将一个变量转换为浮点数类型;
  • (string) 或 strval():将一个变量转换为字符串类型;
  • (bool) 或 boolval():将一个变量转换为布尔类型;
  • (array):将一个变量转换为数组类型;
  • (object):将一个变量转换为对象类型。

下面是显式类型转换的实例:

// 将字符串转换为整型
$str_num = "10";
$num = intval($str_num);
echo $num; // 输出结果为10// 将浮点型转换为字符串
$float_num = 3.14;
$str = strval($float_num);
echo $str; // 输出结果为"3.14"// 将布尔型转换为整型
$bool_val = true;
$num = intval($bool_val);
echo $num; // 输出结果为1// 将整型转换为布尔型
$num = 0;
$bool_val = boolval($num);
echo $bool_val; // 输出结果为false

二、15个常用类型转化示例

2.1 将字符串转换为整型

$str_num = "10";
$num = intval($str_num);

2.2 将整型转换为字符串

$num = 10;
$str_num = strval($num);

2.3 将浮点型转换为整型

$float_num = 3.14;
$num = intval($float_num);

2.4 将整型转换为浮点型

$num = 10;
$float_num = floatval($num);

2.5 将布尔型转换为整型

$bool_val = true;
$num = intval($bool_val);

2.6 将整型转换为布尔型

$num = 0;
$bool_val = boolval($num);

2.7 将字符串转换为浮点型

$str_num = "3.14";
$float_num = floatval($str_num);

2.8 将浮点型转换为字符串

$float_num = 3.14;
$str_num = strval($float_num);

2.9 将数字字符串转换为浮点型

$str_num = "3.14";
$float_num = (float)$str_num;

2.10 将数字字符串转换为整型

$str_num = "10";
$num = (int)$str_num;

2.11 将布尔型转换为字符串

$bool_val = false;
$str_bool = ($bool_val) ? "true" : "false";

2.12 将数组转换为字符串

$arr = array("a", "b", "c");
$str_arr = implode(",", $arr);

2.13 将字符串转换为数组

$str_arr = "a,b,c";
$arr = explode(",", $str_arr);

2.14 将对象转换为数组

class Person {public $name = "Tom";public $age = 20;
}$person = new Person();
$arr = (array)$person;

2.15 将数组转换为JSON

$arr = array("name" => "Tom", "age" => 20);
$json_str = json_encode($arr);

总结

以上就是关于本篇文章介绍的内容,PHP类型转换,后续更多内容将收录在专栏PHP快速入门与实战中,感谢大家支持。

相关文章:

PHP快速入门06-类型转换

文章目录 前言一、关于类型转换1.1 自动类型转换1.2 显式类型转换 二、15个常用类型转化示例2.1 将字符串转换为整型2.2 将整型转换为字符串2.3 将浮点型转换为整型2.4 将整型转换为浮点型2.5 将布尔型转换为整型2.6 将整型转换为布尔型2.7 将字符串转换为浮点型2.8 将浮点型转…...

Motion Planning学习笔记一:配置空间、图、图搜索、图遍历

学习高飞博士的路径规划课程所总结的学习笔记。 目录 1、配置空间(Configuration Space, C-space) 2、图(Graphs) 3、图搜索(Graph Search Basis) 3.1、总体框架 3.2、两种基本的图遍历算法 3.3、启…...

C语言中如何判断大小端字节序?

大小端(Endian)是指多字节整数在内存中存储的方式。在计算机中,一个多字节整数由多个字节组成,而不同的机器和处理器在存储多字节整数时会有两种不同存储方式,分别为大端字节序和小端字节序。 以一个4字节整数0x12345…...

用spring-boot-starter实现事务的统一配置

一、前言 微服务架构下,多个微服务都需要事务操作,如果在每个微服务下都从头配置事务,将非常繁锁。事务配置具有高度的一致性,可以抽取出来,制作starter,在需要配置事务的服务中引入starter依赖即可。 采用…...

C语言中fopen的详细用法

fopen是C语言中用于打开文件的函数,其原型为: FILE *fopen(const char *filename, const char *mode); 其中,filename是要打开的文件名,mode是打开文件的模式。fopen函数返回一个指向FILE类型的指针,该指针指向打开的…...

C语言——学生信息管理系统(数组)

文章目录 一、前言二、目的三、框架1.菜单1.1主菜单1.2子菜单 2.流程图2.1总流程图2.2开始流程图2.3增加学生信息流程图2.4.删除学生信息流程图2.5修改学生信息流程图2.6查询学生信息流程图2.7对学生信息排序流程图 3.思路 四、代码五、演示视频 一、前言 因为最近是在赶进度总…...

【C语言】基础语法1:变量和数据类型

下一篇:运算符和表达式 ❤️‍🔥前情提要❤️‍🔥   欢迎来到C语言基本语法教程   在本专栏结束后会将所有内容整理成思维导图(结束换链接)并免费提供给大家学习,希望大家纠错指正。本专栏将以基础出发…...

linux安装和使用jekins

Jenkins详细安装配置部署--超详细_jenkins安装部署_宝贝富贵猪的博客-CSDN博客 1.安装JDK 2.获取安装包 下载页面:https://jenkins.io/zh/download/ 或者Index of /jenkins/redhat/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 3.安装Jenkins sud…...

驼峰式匹配

问题: 如果我们可以将小写字母插入模式串 pattern 得到待查询项 query,那么待查询项与给定模式串匹配。(我们可以在任何位置插入每个字符,也可以插入 0 个字符。) 给定待查询列表 queries,和模式串 patte…...

第三十七章 立方体贴图总结

立方体贴图:将多个纹理组合起来映射到一张纹理上的一种纹理类型。 一个立方体贴图时包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面,相当于是一个有纹理的立方体。 创建立方体贴图: 首先需要生成一个纹理,将其绑定到纹理目标上,再做其他纹理操作。补充:绑定到…...

哈希(C++)

哈希 unordered系列关联式容器unordered_map介绍 底层结构哈希概念哈希冲突哈希函数哈希冲突解决方式闭散列开散列 模拟实现哈希表的改造 哈希应用位图概念实现 布隆过滤器提出概念 unordered系列关联式容器 在C98中,STL提供了底层为红黑树结构的一系列关联式容器&…...

Spring MVC 的调用(12)

目录 SpringMVC流程 源码分析 第一步:用户发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者…...

死磕内存篇 --- JAVA进程和linux内存间的大小关系

运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] args) { System.out.println("sleep .."); try { Thread.sleep(10000000); } catch (InterruptedException e) { e.printStackTrace(); } } } java -…...

信号完整性分析:关于传输线的三十个问题解答(三)

21.FR4 中 50 欧姆传输线的单位长度电感是多少?如果阻抗加倍怎么办?(What is the inductance per length of a 50-Ohm transmission line in FR4? What if the impedance doubles?) FR4 中的所有 50 欧姆传输线的单位长度电感约…...

Java基础:Stream流常用方法

获取Stream流的方式 java.util.stream.Stream 是Java 8新加入的流接口。(并不是一个函数式接口) 获取一个流非常简单,有以下几种常用的方式: 所有 Collection 集合都可通过 stream 默认方法获取流(顺序流)…...

ImageNet使用方法(细节)自用!

学习记录,自用。 1. 下载数据集 点击以下链接下载种子文件,然后使用迅雷进行下载,仅下载勾选的文件即可。 https://hyper.ai/datasets/4889/c107755f6de25ba43c190f37dd0168dbd1c0877e 2. 解压 找到下载好的ILSVRC2012_img_train.tar 和…...

C/C++外观模式解析:简化复杂子系统的高效方法

C外观模式揭秘:简化复杂子系统的高效方法 引言设计模式的重要性外观模式简介与应用场景外观模式在现代软件设计中的地位与价值 外观模式基本概念外观模式的定义与核心思想提供简单接口隐藏复杂子系统设计原则与外观模式的关系外观模式实现外观模式的UML图 外观模式的…...

追梦之旅【数据结构篇】——详解小白如何使用C语言实现堆数据结构

详解小白如何使用C语言实现堆数据结构 “痛”撕堆排序~😎 前言🙌什么是堆?堆的概念及结构 堆的性质:堆的实现堆向下调整算法画图分析:堆向下调整算法源代码分享:向下调整建小堆向下调整建大堆 堆向上调整算…...

cocoscreator性能优化4-Sprite颜色数据去除

前言 Sprite是游戏内容的一个基本组成元素,包括ui、道具、立绘等各种地方都会用到。大部分情况下美术会帮我们调好图片颜色,我们只要把图片直接放到游戏里就行了。Sprite默认的渲染顶点数据中包含了颜色数据,由于我们并不需要去修改颜色&…...

系统接口幂等性设计探究

前言: 刚开始工作的时候写了一个带UI页面的工具,需要设计登录功能,登录功能也很简单,输入用户名密码点击登录,触发后台查询并比对密码,如果登录成功则返回消息给前端,前端把消息弹出提示一下。…...

突破学术写作瓶颈:WPS-Zotero革新文献管理工作流

突破学术写作瓶颈:WPS-Zotero革新文献管理工作流 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 在学术写作的征途上,文献管理如同隐形的绊脚石&…...

Qwen3-VL-4B Pro行业案例:法律合同截图关键条款提取与语义摘要生成

Qwen3-VL-4B Pro行业案例:法律合同截图关键条款提取与语义摘要生成 1. 项目核心能力与应用场景 想象一下,你是一名法务人员或商务经理,每天需要审阅大量来自邮件、聊天记录或扫描件的合同截图。这些截图里包含了付款条款、违约责任、保密协…...

fre:ac音频转换全攻略:跨平台高效工作流搭建指南

fre:ac音频转换全攻略:跨平台高效工作流搭建指南 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac 在数字音频处理领域,开源工具的选择往往决定了工作流的效率与质量。fre:ac作为一…...

YOLOv12涨点改进| TGRS 2025 | 全网独家创新、涨点上采样改进篇| 引入LSE-FPN拉普拉斯增强特征金字塔,有效提升各层特征的表达,含A2C2f_LSE二次创新,小目标检测高效涨点

一、本文介绍 🔥本文给大家介绍利用 LSE-FPN拉普拉斯增强特征金字塔 改进YOLOv12网络模型, 通过在特征金字塔中加入局部语义增强机制并改进多尺度特征融合方式,有效提升了各层特征的表达能力。该模块能够强化低层特征的语义信息,使模型在小目标检测和复杂场景下表现更优,…...

Windows系统OpenClaw避坑指南:nanobot镜像部署常见报错解决

Windows系统OpenClaw避坑指南:nanobot镜像部署常见报错解决 1. 为什么选择nanobot镜像部署OpenClaw 去年我在尝试将OpenClaw接入本地大模型时,被复杂的依赖关系和GPU配置折磨得够呛。直到发现星图平台的nanobot镜像——这个预装了Qwen3-4B-Instruct模型…...

wan2.1-vae镜像特性解析:服务器重启自动恢复服务机制说明

wan2.1-vae镜像特性解析:服务器重启自动恢复服务机制说明 1. 平台核心能力概述 muse/wan2.1-vae是基于Qwen-Image-2512模型的AI图像生成平台,其核心优势在于: 双语言支持:同时兼容中英文提示词输入超高分辨率:最高支…...

Unity 2023 + VS 2022 保姆级安装配置指南(含国内官网访问与许可证激活避坑)

Unity 2023 VS 2022 一站式开发环境配置实战手册 第一次打开Unity Hub时,那个旋转的立方体logo让我想起五年前自己踩过的坑——当时因为许可证激活失败,整整三天没能写出一行代码。这份手册将用我亲自验证过的方法,带您绕过所有常见陷阱&…...

【网络】Wireshark实战:TCP连接异常之RST报文深度解析

1. 认识TCP的RST报文:网络世界的紧急刹车 第一次在Wireshark里看到RST标志位时,我正盯着满屏的TCP握手包发呆。那个鲜红的[RST, ACK]就像交通信号灯突然变红,让原本流畅的数据传输戛然而止。简单来说,RST(Reset&#x…...

GHelper轻量级解决方案:华硕笔记本性能调校完全指南

GHelper轻量级解决方案:华硕笔记本性能调校完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址:…...

Druid监控界面安全加固实战:从暴露风险到生产级防护

1. Druid监控界面暴露风险全景扫描 上周帮客户做安全审计时,发现他们的订单系统监控页面居然能直接通过公网IP访问,打开/druid/index.html就能看到所有SQL执行记录和会话信息。这种场景太典型了——很多团队在开发阶段为了方便调试,把Druid监…...