PHP数据类型的自动转换和强制转换

自动转换

布尔值判断时的自动类型转换

  1. 整型的0为假,其他整型值全为真

  2. 浮点的0.0,布尔值的假。小数点后只要有一个非零的数值即为真。

  3. 空字符串为假,只要里面有一个空格都算真。

  4. 字符串的0,也将其看作是假。其他的都为真

  5. 空数组也将其视为假,只要里面有一个值,就为真。

  6. 空也为假

  7. 未声明成功的资源也为假

其他类型的自动类型转换

  1. 布尔值的true参与运算是会变成整型或者浮点的1

  2. 布尔值的false参与运算是会变成整型或者浮点的0

  3. 字符串开始处是整型或浮点类型的字符,会转成对应的类型参与运算

强制转换

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

  1. 用后面的三个函数可以完成类型转换,intval()、floatval()、strval()

  2. 变量前加上()里面写上类型,将它转换后赋值给其他变量

  3. settype(变量,类型) 直接改变量本身

强制类型转换时的特点

  1. 空转为整型会为整型的0

  2. 空转为浮点会为浮点的0

  3. 空转为字符串会为空字符串‘’

  4. 浮点的123.0转为字符串会为字符串123

  5. 浮点的123.2转为字符串会为字符串的123.2

  6. 浮点即使小数点再大,它都会被干掉,会舍掉小数点后面的值

  7. 如果字符串转为整型的时候,如果数值在前面,会将前面的数值拿出来做为整型的转换值。

  8. settype(变量,’null’); 等价于 unset()一个变量

  9. 目 标 变 量 = ( 类 型 ) 目标变量 = (类型) =()操作变量 只会改变目标变量的类型,不会改变原变量的类型,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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值