当前位置: 首页 > 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页面的工具,需要设计登录功能,登录功能也很简单,输入用户名密码点击登录,触发后台查询并比对密码,如果登录成功则返回消息给前端,前端把消息弹出提示一下。…...

Qwen2.5-Coder-1.5B实现计算机网络实验:TCP/IP协议栈分析

Qwen2.5-Coder-1.5B实现计算机网络实验:TCP/IP协议栈分析 1. 引言 计算机网络课程中的TCP/IP协议栈分析实验一直是让学生头疼的内容。传统实验需要手动编写底层网络代码,配置复杂环境,调试过程繁琐。现在有了Qwen2.5-Coder-1.5B这样的代码生…...

如何用Video2X实现视频画质智能增强?零基础入门到精通指南

如何用Video2X实现视频画质智能增强?零基础入门到精通指南 【免费下载链接】video2x A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trend…...

Windows 7 SP2重构方案:现代硬件适配与系统焕新体验

Windows 7 SP2重构方案:现代硬件适配与系统焕新体验 【免费下载链接】win7-sp2 UNOFFICIAL Windows 7 Service Pack 2, to improve basic Windows 7 usability on modern systems and fully update Windows 7. 项目地址: https://gitcode.com/gh_mirrors/wi/win7-…...

FlowState Lab参数调优实战:如何获得理想的模拟精度与速度

FlowState Lab参数调优实战:如何获得理想的模拟精度与速度 1. 为什么参数调优如此重要 在工程仿真领域,我们常常面临一个经典难题:精度与速度的权衡。FlowState Lab作为一款强大的流体动力学仿真工具,其参数设置直接影响着模拟结…...

【Linux第十四章】文件系统

前言 🚀在日常开发里,我们几乎每天都在和文件打交道:打开源码、读取日志、写入配置、删除临时文件。但从操作系统的视角看,磁盘上天然存在的并不是“文件”这种概念,底层真正能被访问的,是一块一块的存储单…...

Anything-v5模型微调启示:Pixel Fashion Atelier对动漫风格像素化表达的重构

Anything-v5模型微调启示:Pixel Fashion Atelier对动漫风格像素化表达的重构 1. 项目背景与设计理念 Pixel Fashion Atelier是一个创新的图像生成工作站,它巧妙融合了Stable Diffusion的强大生成能力与Anything-v5模型对动漫风格的精准把控。这个项目最…...

一文讲清楚 OpenClaw 是什么,以及 Windows 下的部署

OpenClaw 到底是什么1. 它在系统里干的事:接入层 运行时管理很多人第一次看到 OpenClaw,会把它当成“一个聊天 UI”。更工程化的视角是:它负责把外部请求接进来,并把后面的执行系统跑起来、管起来。接入层:把外部入口…...

告别Armoury Crate臃肿困扰:GHelper革新性华硕笔记本硬件控制方案带来性能突破

告别Armoury Crate臃肿困扰: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…...

Phi-3-mini-128k-instruct在软件测试中的应用:自动化生成测试用例与脚本

Phi-3-mini-128k-instruct在软件测试中的应用:自动化生成测试用例与脚本 1. 引言 如果你是一名软件测试工程师,或者正在准备软件测试面试,下面这个问题你一定不陌生:“如何保证测试用例的覆盖率,尤其是在需求频繁变更…...

STEP3-VL-10B WebUI教程:自定义快捷提示词模板+一键插入常用指令

STEP3-VL-10B WebUI教程:自定义快捷提示词模板一键插入常用指令 你是不是每次用多模态AI模型时,都要重复输入那些固定的指令?比如“请详细描述这张图片”、“帮我分析这个图表的数据”、“用中文回答”……一遍又一遍地打字,不仅…...