美文网首页
3.13 PHP数据类型转换之自动转换

3.13 PHP数据类型转换之自动转换

作者: 43e03964ffe2 | 来源:发表于2016-04-01 17:01 被阅读208次

    数据类型的自动转换一般发生在运算或者if判断时,两种不同类型的数据会自动转换,转换的原则是小类型往大类型转换。如下图:

    <?php
        $int = 10;
        $flo = 21.1;
        $bool = false;
        $str = "ni";
        $a = $int + $flo;
        $type = gettype($a);
        echo "整形和浮点型的结果:$a 类型是:$type <br>";
        $b = $int + $bool;
        $type = gettype($b);
        echo "整形和布尔型的结果:$b 类型是:$type <br>";
        $c = $int + $str;
        $type = gettype($c);
        echo "整形和字符串的结果:$c 类型是:$type <br>";
        $d = $flo + $bool;
        $type = gettype($d);
        echo "浮点型和布尔型的结果:$d 类型是:$type <br>";
        $e = $flo + $str;
        $type = gettype($e);
        echo "浮点型和字符串的结果:$e 类型是:$type <br>";
        $f = $bool + $str;
        $type = gettype($f);
        echo "布尔型和字符串的结果:$e 类型是:$type <br>";
    ?>
    
    实验结果图

    无论自动转换和强制转换都要注意下几点:

    • 浮点型转整型时,会割舍取整数部分,没有四舍五入。
    <?php
        $flo = 110.9;
        $int = (int)$flo;
        var_dump($int);
    ?>
    
    • 浮点型转整型要注意整型的最大、最小值,超出整型范围会溢出。

    • 字符串转整型需要注意以下几点:

      • 字符串中都是字时转为0;
      • 字符串中间有数字转为0;
      • 字符串开头是数字转为开头的数字(数字一直到不是数字为止);
      • 456e3注意这是科学计数法,所以这也应该认为是数字;

    判断类型的语法:

    <?php
        is_bool();  //是否为布尔型
        is_int(); is_integer(); is_long();  //是否为整型
        is_float();  is_double(); is_real();   //是否为浮点型;
        is_string();  //是否为字符串
        is_array();  //是否为数组
        is_object();  //是否因为对象;
        is_resource();   //是否为资源
        is_null();    //是否为空,这是判断数据类型是否为空,与empty();不同,这是判断内容是否为空
        is_scalar();  //是否为标量
        is_numeric();  //是否为任何类型的数字和数字字符串
        is_callable();  //是否为有效的函数名
    ?>
    

    相关文章

      网友评论

          本文标题:3.13 PHP数据类型转换之自动转换

          本文链接:https://www.haomeiwen.com/subject/oqrylttx.html