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

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
Java多线程实现之Runnable接口深度解析
Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...

智警杯备赛--excel模块
数据透视与图表制作 创建步骤 创建 1.在Excel的插入或者数据标签页下找到数据透视表的按钮 2.将数据放进“请选择单元格区域“中,点击确定 这是最终结果,但是由于环境启不了,这里用的是自己的excel,真实的环境中的excel根据实训…...