转换变量或者值的类型,转换成其他数据类型的方法紧张分为两大类:自动转换和逼迫转换。
(int)、(integer):转换成整形
(float)、(double)、(real):转换成浮点型

(string):转换成字符串
(bool)、(boolean):转换成布尔类型
(array):转换成数组
(object):转换成工具
一、自动转换类型:自动类型转换便是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不须要程序员干预,会自动发生。
自动转换,常日发生在不同数据类型的变量进行稠浊运算时。一样平常只有四种标量类型int、float、string、bool才会进行自动转换。
注:
字符串、数字参与运算,字符串先转换成数字;
转换后的数字从字符串开始的数值开始,不带小数点则为int,否则为false;
字符串"abcsd"直接转换成0;
整型转化为浮点型,由于浮点型的精度范围大于整型,以是转化后的精度不会改变;
浮点型转化为整型,将自动舍弃小数点部分,只保留整数部分;
如果一个浮点数超过整形数字的有效范围,其结果是不愿定的。;
当字符串转化为数字时,转化后的数字是从字符串开始部分的数值型字符串,数值型字符串包括用科学打算法表示的数字。
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根本入门——函数「理论篇」
你以为的程序员日常
下期预报(变量类型测试函数的利用方法)
is_bool():剖断是否为bool
is_int();剖断是否为整型
is_float():剖断是否为浮点型
is_string():剖断是否为字符串
is_array();剖断是否为数组
is_object():剖断是否为工具
is_resource():剖断是否为资源
is_null():判断是否为空
is_scalar():判断是否为标量
is_numeric():判断是否为数字或数字字符串
is_callable():判断是否为有效函数名
今日提问:【怎么看待PHP不声明数据类型?】