自学PHP笔记(三) 类型转换
本文转发来自:https://blog.csdn.net/KH_FC/article/details/115558701
在真正使用PHP写项目时会经常用到不同数据类型之间进行转换,PHP中类型转换是比较简单的,只需要在变量前面加上用括号括起来的数据类型名称就可以了,数据类型转换有以下几种:
| 转换类型 | 说明 |
|---|---|
| (bool)(boolean) | 转换为布尔值 |
| (string) | 转换为字符串 |
| (int)(integer) | 转换为整数 |
| (float)(double)(real) | 转换为浮点型 |
| (array) | 转换为数组 |
| (object) | 转换为对象 |
| (unset) | 转换为NULL,也就是删除变量 |
| (binary)b前缀 | 转换为二进制字符串 |
除了上面几种转换方式还有一个使用settype()函数进行转换
【示例】使用settype()函数进行数据类型转换
<?php
$a = "abc";
$b = 123;
settype( $b, "float");
var_dump($b);
?>
输出结果为:float(123)
【方法】settype()使用方法
函数内第一个为变量,在上面示例中为$b,第二个参数为数据类型,也就是你想将这个变量值转换为哪种类型,在上面示例中使用的是float,在PHP7版本中支持boolean、float、integer、string、null、array、object。注意:此函数只能返回布尔值,可用于判断,类型转换成功则返回true,转换失败则返回false
【示例】转换数据类型的常用方法
<?php
$num = '123abc';
var_dump((integer)$num);
echo '<br>';
var_dump((float)$num);
echo '<br>';
var_dump((string)$num);
?>
输出结果为:
int(123)
float(123)
string(6) "123abc"
1.转换为字符串
一个值可以通过在值前面加上(string)或者(strval)函数来转换为字符串,在一个需要字符串的表达式中,字符串会自动转换,在使用函数echo()或者print()时,或者在一个变量和一个字符串进行比较时,就会发生这种转型。print()类似于print_r()。
【示例】
<?php
$str = 'abcdef';
$num = 12345.123;
var_dump((string)$num);
echo '<br>';
if ($str == 'abcdef') {
echo true;
}
?>
输出结果为:
string(9) "12345.123"
1
【注意】在进行字符串转换时应注意以下几点:
- 一个布尔值被转换时则会将
true转换成1,而false值将会被转换为空""这里空不是NULL,而是空的字符串,这种转换可以在布尔值和字符串之间随意转换。 - 一个整数或者浮点数被转换字符串,则会转换为数字的字面样式的字符串,包括采用科学技术法记录的浮点数。
- 数组被转换为字符串
Aaary,因此使用函数echo()或者print()无法正确的显示出数组的值,如果想要正确输出数组中的值则需要采用echo (array('$a'))这种方式进行,也就是读取数组中值的方法。 - 资源总会被转换为
Resource id#1结构的字符串,其中1是PHP分配给该资源独有的数字。 - NULL总会被转换为空的字符串。
2.转换为整数
想要将一个值转换为整数,可以使用(int)或者(integer)进行强制转换,不过大多数都不需要进行转换,在使用运算符、函数或者判断数值需要一个整数值时,值会自动转换为整数,还可以通过intval()函数进行转换。
【注意】在进行转换整数时需要注意以下两点:
- 当要将布尔值转换为整数时,则会将布尔值中
true转换为1,false则会被转换为0。 - 当要将浮点数转换为整数时,将向零取整,如果浮点数超出了整数范围,则转换结果变得不容易控制,这里不建议将未知的浮点数转换为整数,因为获取的结果可能不是你想象的那样哦,还有就是向零取整并不是四舍五入。
【示例】
<?php
$bool = true;
$float = 10.6111;
$abc = ( 0.1 + 0.7 ) *10;
echo intval($bool);
echo '<br>';
echo intval($float);
echo '<br>';
echo (int)$abc;
?>
输出结果为:
1
10
7
这个示例可以看出正常情况下$abc运算结果为8,但是当转换为整型后确输出了7,输出结果不正确,所以在浮点数转换整数时一定要注意。
3. 转换为布尔值
想要将一个值转换为布尔值是比较简单的,只需要使用(bool)或者(boolean)来强制转换为布尔值即可,大部分情况下是不需要进行转换的,当使用运算符、函数或者做判断时都可以自动转换为布尔值的。
【注意】在转换布尔值时需要注意下面几个值转换则会转换为false
0:整数零0.0:浮点数零"0":字符串零"":空字符串空数组:没有任何值得数组空对象:没有任何成员变量得对象NULL:特殊类型NULL- 从没有任何标记得XML文档生成得SimpleXML对象
除了以上值所有类型所有值都会转换为true。
【示例】
<?php
$array = array();
$int = 1;
$str = "";
var_dump((bool)$array);
echo '<br>';
var_dump((bool)$int);
echo '<br>';
var_dump((bool)$str);
?>
输出结果为:
bool(false)
bool(true)
bool(false)
4. 检测数据类型
在很多时候都需要由程序自动去判断数据类型,PHP内置了一些检测数据类型得函数,可以根据不同得类型进行检测,判断是否属于某种类型,如果符合则返回true,如果不符合则返回false。常用得数据类型检测函数:
| 检测函数 | 说明 |
|---|---|
| is_bool | 检测变量是否为布尔值 |
| is_string | 检测变量是否为字符串 |
| is_float | 检测变量是否为浮点数 |
| is_int | 检测变量是否为整数 |
| is_null | 检测变量是否为空 |
| is_array | 检测变量是否为数组 |
| is_object | 检测变量是否为对象 |
| is_numeric | 检测变量是否为数字或者是数字组成得字符串 |
| is_double | 检测变量是否为浮点数 |
【示例1】判断是否为整数
<?php
$int = 100;
if (is_int($int)){
echo '$int'."是整数类型,并且整数值为$int";
}else{
echo '$int'."不是整数类型";
}
?>
输出结果为:$int是整数类型,并且整数值为100
【示例2】判断是否为浮点数
<?php
$int = 100;
if (is_float($int)){
echo '$int'."是浮点数类型,并且浮点数值为$int";
}else{
echo '$int'."不是浮点数类型";
}
?>
输出结果为:$int不是浮点数类型
【小灶】在测试字符时经常会遇到不知道会输出什么类型得值,也不知道自己写得变量是什么类型时,可以采用gettype()或者var_dump()查看变量或者值得数据类型
gettype函数只输出值或变量得类型,不会输出值var_dump函数即输出值也输出类型
【示例】使用gettype函数输出变量类型
<?php
$int = 0.1111;
echo gettype($int);
?>
输出结果为:double也就是浮点数类型
自学PHP笔记(三) 类型转换的更多相关文章
- 孤荷凌寒自学python第三十九天python 的线程锁Lock
孤荷凌寒自学python第三十九天python的线程锁Lock (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 当多个线程同时操作一个文件等需要同时操作某一对象的情况发生时,很有可能发生冲突, ...
- 孤荷凌寒自学python第三十八天初识python的线程控制
孤荷凌寒自学python第三十八天初识python的线程控制 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.线程 在操作系统中存在着很多的可执行的应用程序,每个应用程序启动后,就可以看 ...
- 孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化
孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.什么是序列化与反序列化 序列化是指将内存中的数据进行指 ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- 孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习
孤荷凌寒自学python第三十四天python的文件操作对file类的对象学习 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.close() 当一个file对象执行此方法时,将关闭当前 ...
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- 孤荷凌寒自学python第三十一天python的datetime.timedelta模块
孤荷凌寒自学python第三十一天python的datetime.timedelta模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.timedelta模块是一个表示 ...
- 孤荷凌寒自学python第三十天python的datetime.datetime模块
孤荷凌寒自学python第三十天python的datetime.datetime模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.datetime模块包含了:datet ...
- 孤荷凌寒自学python第三天 初识序列
孤荷凌寒自学python第三天 初识序列 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的序列非常让我着迷,之前学习的其它编程语言中没有非常特别关注过序列这种类型的对象,而pyt ...
随机推荐
- web & js & touch & gesture
web & js & touch & gesture 触摸 & 手势 https://caniuse.com/#feat=touch js https://develo ...
- TypeScript 3.7 RC & Nullish Coalescing
TypeScript 3.7 RC & Nullish Coalescing null, undefined default value https://devblogs.microsoft. ...
- TERSUS无代码开发(笔记05)-简单实例电脑端页面设计
案例笔记电脑端页面设计 1.新建项目(请假管理qjgl) 2.开发软件界面介绍(常用的功能按键) 3.目录中显示元件对象 4.对元件对象的操作主要方式是双击(双击哪个元件, ...
- Vue学习笔记-Django REST framework3后端接口API学习
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- 鸿蒙开源第三方组件 ——B站开源弹幕库引擎的迁移(上)
鸿蒙入门指南,小白速来!0基础学习路线分享,高效学习方法,重点答疑解惑--->[课程入口] 目录: 一.弹幕库的基础知识 二.弹幕库的使用方法 三.sample解析 四.作者系列文章合集 前言 ...
- Go的函数
目录 Go的函数 一.函数的定义 1.函数的基本格式 2.函数的参数 2.1 函数传参的特点:copy传值 3.函数的返回值 4.可变长参数 二.函数的类型 1.给函数的类型重命名 三.匿名函数 1. ...
- .Net -- NLog日志框架配置与使用
NLog是适用于各种.NET平台(包括.NET标准)的灵活,免费的日志记录平台,NLog可将日志写入多个目标,比如Database.File.Console.Mail.下面介绍下NLog的基本使用方法 ...
- mysql日志系统简单使用
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBM ...
- nacos服务注册之服务器端Raft
Raft是持久化,数据存储在\nacos\data\naming\data目录 nacos启动后首先从数据存储目录加载数据 Raft协议中节点只有一个LEADER,只有LEADER节点负责数据写入,F ...
- scrapy框架的介绍与安装
scrapy框架的原理 使用pycharm安装scrapy库 1.打开新建file,然后有个扳手的setings点击进去,如图所示: 2.选择project 然后点击python interprete ...