在对两个不同数据类型进行运算时,需要对变量的数据类型进项转换, 通常情况下变量的类型转换分为两种,非别是自动类型转换和强制类型转换
所谓的自动类型转换就是变量的类型有php自动转换,我们无须做任何操作,在php中,最常见的自动类型转换情况有三种;分别是转布尔型、转整型、转字符型。
1.转换布尔型在php中经常把一个值转换为布尔类型,很多情况下,系统会自动将其他类型转换为布尔型,当转换为布尔型时,有的值会被转为false,具体如下
案例代码如下
<?php
//以下变量为false的情况
$a=0;
$b=0.0;
$c= "";
$d= "0";
$e=array(); //数组类型
$f=null; //一个空值
//在if语句中,判断变量是否等于布尔值false,是则输出,否则无输出
if($a==false) echo '<br/> 变量$a转换成布尔型为false';
if($b==false) echo '<br/> 变量$b转换成布尔型为false';
if($c==false) echo '<br/> 变量$c转换成布尔型为false';
if($d==false) echo '<br/> 变量$d转换成布尔型为false';
if($e==false) echo '<br/> 变量$e转换成布尔型为false';
if($f==false) echo '<br/> 变量$f转换成布尔型为false';
//变量为true的情况
$x=3; //定义一个整型变量
$y= 'hello'; //定义一个字符型变量
if($x==true) echo '<br/> 变量$x转换成布尔型为true';
if($y==true) echo '<br/> 变量$y转换成布尔型为true';
?>
运行结果为
变量a、b、c、d、e、f分别定义了6个不同的变量,使用if判断语句判断变量的值是否为false,由于if语句中,只有判断成立才会输出后面的语句,变量x、y同理,判断值是否为true;
从结果可以看出变量a、b、c、d、e、f的值都转换为了false,而x、y都转化为了true
2. 转换成整型在php中,除了可以将不同的数据转换成布尔型,还可以转化为整型,其中布尔型、浮点型和字符串型的变量转为整型方式如下:
(1) 布尔型转换成整型:布尔值true,转换成整型为1;布尔值false转化成整型为0;
(2) 浮点型转换成整型:浮点数转换成整型时,向下取整。
(3) 字符串型转换成整型:字符串的开始部分决定它的值。如果该字符串以合法的数值开始,则使用该数值否则其值为0(零)。合法的数值包括可选的正负号,后面更一个或多个数字(可能有小数点),在跟着可选的指数部分,指数部分由“e”或“E”后面跟着一个或多个数字构成,如果该字符串包含“.”“e”或“E‘”,则会被作为float来曲直;否则会作为整数来取值。
案例如下
<?php
$a=true;
$b=$a+1; //布尔类型的数与整形想加
var_dump($b);
echo '<br/>';
//字符型转化成正想,1.5e2表示1.5*(10*10)
$char1=1+"1.5e2"; //字符型数与整型相加
var_dump($char1);
echo '<br/>';
$char2=1+"hello";//字符型数与整型数相加
var_dump($char2);
echo '<br/>';
$char3=1+"10hello"; //字符型数与整型数相加
var_dump($char3);
?>
运行结果
3.转化成字符串型在php中,讲其他类型的数据转换为字符串型也是常见的,其中,将布尔型、整型、浮点型转换成字符串型如下
(1) 布尔型转换成字符串型:布尔值true转换成字符串型为”1”;布尔值false则为空字符””;
(2) 整型或浮点型转化成字符串型:把数字的字面样式转换成string形式
案例
<?php
$a=true;
echo $a;
echo "<br/>";
$b=3;
$c=4.4;
$d=$b.'string'.$c;
var_dump($d);
?>
运行结果
定义变量a为布尔型,变量b为整型,变量c为浮点型,变量d的值是变量b‘string’和变量c连接起来;
变量a的值为1,说明布尔值被转换成了字符串“1”;
变量c的值为字符串“3string4.4”整型和浮点型数据按书面样式转换成string样式;
在php中,变量数据类型不仅可以自动转换,还可以手动转换成指定的数据类型,即强制类型转换。
php中强制类型转换只需要在变量前加一个小括号,并把目标类型填入括号中。
强制类型 | 功能描述 |
(boolean) | 强转为布尔型 |
(string) | 强转为字符串型 |
(integer) | 强转为整型 |
(float) | 强转为浮点型 |
(array) | 强转为数组 |
(object) | 强转为对象 |
案例
<?php
$number1=0;
$float_number=(boolean)$number1; //将变量$number1强制转换为布尔型
var_dump($float_number);
echo "<br/>";
$string="abcd";
$tonumber=(int)$string; //将变量$string强制转换为整型
var_dump($tonumber);
echo "<br/>";
$number2=1234;
$tonumben2=(string)$number2; //将变量$number2强制转换为字符串型
var_dump($tonumben2);
?>
运行结果
*声明:内容来源于网络收集和整理,版权归原著所有,如来源信息有误或侵犯权益,请联系站长作修改和删除处理。