首页 热点专区 小学知识 中学知识 出国留学 考研考公
您的当前位置:首页正文

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

2024-12-11 来源:要发发知识网

数据类型的自动转换一般发生在运算或者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();  //是否为有效的函数名
?>
显示全文