自动转换
布尔值判断时的自动类型转换
-
整型的0为假,其他整型值全为真
-
浮点的0.0,布尔值的假。小数点后只要有一个非零的数值即为真。
-
空字符串为假,只要里面有一个空格都算真。
-
字符串的0,也将其看作是假。其他的都为真
-
空数组也将其视为假,只要里面有一个值,就为真。
-
空也为假
-
未声明成功的资源也为假
其他类型的自动类型转换
-
布尔值的true参与运算是会变成整型或者浮点的1
-
布尔值的false参与运算是会变成整型或者浮点的0
-
字符串开始处是整型或浮点类型的字符,会转成对应的类型参与运算
强制转换
强制类型转换有三种方式:
-
用后面的三个函数可以完成类型转换,intval()、floatval()、strval()
-
变量前加上()里面写上类型,将它转换后赋值给其他变量
-
settype(变量,类型) 直接改变量本身
强制类型转换时的特点
-
空转为整型会为整型的0
-
空转为浮点会为浮点的0
-
空转为字符串会为空字符串‘’
-
浮点的123.0转为字符串会为字符串123
-
浮点的123.2转为字符串会为字符串的123.2
-
浮点即使小数点再大,它都会被干掉,会舍掉小数点后面的值
-
如果字符串转为整型的时候,如果数值在前面,会将前面的数值拿出来做为整型的转换值。
-
settype(变量,’null’); 等价于 unset()一个变量
-
目 标 变 量 = ( 类 型 ) 目标变量 = (类型) 目标变量=(类型)操作变量 只会改变目标变量的类型,不会改变原变量的类型,Settype是改变原值
实例
intval()、floatval()、strval()转换
<?php
$float = 1.23;
$result = intval($float);
//看看结果是不是变了?
var_dump($result);
//鸭脖子为整型的5
$yabozi = 5;
$re = floatval($yabozi);
var_dump($re);
//定义整型的变量
$yabozi = 23;
$bian = strval($yabozi);
//强制变成字符串试试
var_dump($bian);
变量前加上()里面写上类型,将它转换后赋值给其他变量
<?php
//定义一个变量,我们来变化一下试试
$transfer = 12.8;
//把浮点变为整型
$jieguo = (int)$transfer;
var_dump($jieguo);
//把浮点变为布尔
$jieguo = (bool) $transfer;
var_dump($jieguo);
//把布尔变整型
$bool = true;
$jieguo = (int)$bool;
//把浮点变数组
$fo = 250;
$jieguo = (array)$fo;
var_dump($jieguo);
//其他的操作方式,按照文字总结的规律你来试试
settype(变量,类型) 直接改变量本身
<?php
//定义浮点变为整型
$fo = 250.18;
//settype第二个参数是int,你实验的时候要记得第二个参数要为字符串类型
settype($fo,'int');
//输出看看结果
var_dump($fo);
<?php
//小可爱,记得自己做实验,验证上面的9点哟
$t=12.9;
settype($t,'int');
var_dump($t);