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

数据类型的自动转换一般发生在运算或者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();  //是否为有效的函数名
?>
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 4,292评论 1赞 10
  • 作者 : 韩曙亮转载请注明出处 : http://blog.csdn.net/shulianghan/articl...
    NieFeng1024阅读 1,664评论 0赞 2
  • 1. 数据类型简介及输出 (1) 数据类型简介 数据类型简介: Object - C 数据类型 分为 基本数据类型...
    CityZen_S阅读 8,158评论 1赞 13
  • 张清的日精进第30天 体验入 自从学习全员生发之后。大家伙都学会了积极的表达自己的看法。也都爱上了积极表达自己的看...
    kiyoi2017阅读 229评论 0赞 1
  • 我觉得我可以再努力一点 把这半首诗 写完 围墙下 趴着一只老狗 是昨天那只老狗 啃了两天骨头 我闲庭信步 踩到了草...
    留子尧阅读 289评论 3赞 6

友情链接更多精彩内容