前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP丨PHP基础知识之数据类型之间相互转换

PHP丨PHP基础知识之数据类型之间相互转换

原创
作者头像
大脸猫
修改2020-06-22 14:23:06
6140
修改2020-06-22 14:23:06
举报
文章被收录于专栏:全能大脸猫全能大脸猫

昨天刚讲完PHP数据类型,今天就来讲讲PHP数据类型的转换。

PHP丨PHP基础知识之数据类型之间相互转换
PHP丨PHP基础知识之数据类型之间相互转换

转换变量或者值的类型,转换成其他数据类型的方法主要分为两大类:自动转换和强制转换。

(int)、(integer):转换成整形

(float)、(double)、(real):转换成浮点型

(string):转换成字符串

(bool)、(boolean):转换成布尔类型

(array):转换成数组

(object):转换成对象

一、自动转换类型:

自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。

自动转换,通常发生在不同数据类型的变量进行混合运算时。一般只有四种标量类型int、float、string、bool才会进行自动转换。

PHP丨PHP基础知识之数据类型之间相互转换
PHP丨PHP基础知识之数据类型之间相互转换

注:

字符串、数字参与运算,字符串先转换成数字;

转换后的数字从字符串开始的数值开始,不带小数点则为int,否则为false;

字符串"abcsd"直接转换成0;

整型转化为浮点型,由于浮点型的精度范围大于整型,所以转化后的精度不会改变;

浮点型转化为整型,将自动舍弃小数点部分,只保留整数部分;

如果一个浮点数超过整形数字的有效范围,其结果是不确定的。;

当字符串转化为数字时,转化后的数字是从字符串开始部分的数值型字符串,数值型字符串包括用科学计算法表示的数字。

PHP丨PHP基础知识之数据类型之间相互转换
PHP丨PHP基础知识之数据类型之间相互转换

NULL转为字符串,为空字符

二、强制类型转换:

自动类型转换是编译器根据代码的上下文环境自行判断的结果,有时候并不是那么“智能”,不能满足所有的需求;

如果需要,程序员也可以自己在代码中明确地提出要进行类型转换,这称为强制类型转换。

PHP数据类型强制转换有三种方式:

1、在转换的变量前加上目标类型:包括(int)整型、(bool)布尔型、(float)浮点型、(string)字符串、(array)数组、(object)对象;

<?php$num1=3.14;$num2=(int)$num1;var_dump($num1); //输出float(3.14)var_dump($num2); //输出int(3)?>

2、使用内置转换函数intval()、floatval()、strval()、boolval()

<?php$str="123.9abc";$int=intval($str); //转换后数值:123$float=floatval($str); //转换后数值:123.9$str=strval($float); //转换后字符串:"123.9"?>

以上两种方法均没有改变被转换变量本身的类型,而是转换得到新的类型数据值给变量,原始变量的类型和值不变。

3、setType() 会将变量本身类型改变成其他类型。

<?php$num=12.8;$flg=settype($num,"int");var_dump($flg); //输出bool(true)var_dump($num); //输出int(12)?>

注意:

类型转换中浮点型转换成整型,会舍弃小数部分,只保留整数。

字符串转换为数字时,转换后的数字是从字符串开始部分的数值型字符部分转换的。

自动类型转换 VS 强制类型转换

可以自动转换的类型一定能够强制转换,但是,需要强制转换的类型不一定能够自动转换;

现在我们学到的数据类型,既可以自动转换,又可以强制转换,以后我们还会学到一些只能强制转换而不能自动转换的类型。

可以自动进行的类型转换一般风险较低,不会对程序带来严重的后果,例如:int 到 double 没有什么缺点,float 到 int 顶多是数值失真。

只能强制进行的类型转换一般风险较高,或者行为匪夷所思,

就是很奇怪的一种转换,这会导致取得的值也很奇怪,

就是风险极高的一种转换,一般会导致程序崩溃。

PHP丨PHP基础知识之数据类型之间相互转换
PHP丨PHP基础知识之数据类型之间相互转换

使用强制类型转换时,程序员自己要意识到潜在的风险。

文章收集与网络,辛苦收集转载请备注出处全能大脸猫博客!

好了今天就分享到这里,拜拜我是你们的大朋友计算机爱好者大脸猫。

今日推荐:

PHP丨PHP基础知识之数据类型

PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

下期预告(变量类型测试函数的使用方法)

is_bool():判定是否为bool

is_int();判定是否为整型

is_float():判定是否为浮点型

is_string():判定是否为字符串

is_array();判定是否为数组

is_object():判定是否为对象

is_resource():判定是否为资源

is_null():判断是否为空

is_scalar():判断是否为标量

is_numeric():判断是否为数字或数字字符串

is_callable():判断是否为有效函数名

今日提问:【怎么看待PHP不声明数据类型?】

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、自动转换类型:
  • 二、强制类型转换:
  • 自动类型转换 VS 强制类型转换
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档