美文网首页
php 数据类型和数据类型转化

php 数据类型和数据类型转化

作者: 暴躁程序员 | 来源:发表于2023-01-15 14:51 被阅读0次

    一、数据类型

    • 基础数据类型
    String                               字符串
    Integer                              整型
    Float                                浮点型
    Boolean                              布尔型
    
    • 复合数据类型
    Array                                数组
    Object                               对象
    
    • 特殊数据类型
    NULL                                 空值
    Resource                             资源类型
    

    二、获取数据类型

    echo gettype('1');      // string
    echo gettype(1);        // integer
    echo gettype(1.1);      // double
    echo gettype(false);    // boolean
    
    echo gettype(null);     // NULL
    echo gettype([1]);      // array
    

    三、打印数据类型和值

    var_dump('1');      // string(1) "1"
    var_dump(1);        // int(1)
    var_dump(1.1);      // float(1.1)
    var_dump(false);    // bool(false)
    
    var_dump(null);     // NULL
    var_dump([1]);      // array(1) { [0]=> int(1) }
    

    四、数据类型判断

    is_string()                          是否是字符型
    is_bool()                            是否是布尔型
    is_int()                             是否是整型
    is_float()                           是否是浮点型
    
    is_array()                           是否是数组
    is_object()                          是否是对象
    
    is_null()                            是否是null
    is_resource()                        是否是资源型
    
    is_numeric()                         是否是数字,包括字符型数字
    

    五、数据类型转化

    1. 自动类型转化(只有基础类型可参与转化)

    1. 参与计算时,自动转化为整型和浮点型
    • 数字类型字符串转化为对应的整型或者浮点型,空字符和其他字符不能转化
    • true、false、null 转化为整型的结果分别为1、0、0
    echo '100.1' + '100.2'; //字符串自动转化为数字,结果为:200.3
    echo true + '100';      //布尔值自动转化为数字,结果为:101
    echo null + '100';      //null  自动转化为数字,结果为:100 
    
    1. 作为判断条件,自动转化为布尔类型
      除了0、0.0、'0'、空字符串、null、空数组 自动转化为布尔类型是false,其他都是true
    echo '' == false ?'yes':'no';   //yes
    echo '1' == true ?'yes':'no';   //yes
    echo '0' == false ?'yes':'no';  //yes
    
    echo 1 == true ?'yes':'no';     //yes
    echo 0 == false ?'yes':'no';    //yes
    echo 0.0 == false ?'yes':'no';  //yes
    
    echo null == false ?'yes':'no';  //yes
    echo [0] == true ?'yes':'no';    //yes
    echo [] == false ?'yes':'no';    //yes
    
    1. 参与字符串拼接时,自动转化为字符串类型
    • 整型和浮点型转化为数字类型字符串
    • true 转化为 '1',false 转化为空字符串
    • null 转化为空字符串
    echo 0 . 100;   //0100
    echo '0' . true . false . true; // 011
    echo null . 100; // 100
    echo '' . 100;   //100
    

    2. 强制类型转化

    • 在变量之前加上括号变量类型
    1. 强转为整型
      (integer) 或者 (int)
    $a = true;
    echo (integer)$a;  // 1
    echo gettype((integer)$a);  // integer
    echo (int)$a;  // 1
    echo gettype((int)$a);  // integer
    
    1. 强转为浮点型
      (float) 或者 (double)
    $a = '1';
    echo (float)$a;  // 1
    echo gettype((float)$a);  // double
    echo (double)$a;  // 1
    echo gettype((double)$a);  // double
    
    1. 强转为字符型
      (string)
    $a = true;
    echo (string)$a;  // 1
    echo gettype((string)$a);  // string
    
    1. 强转为布尔型
      (bool) 或者 (boolean)
    $a = '1';
    echo (bool)$a;  // 1
    echo gettype((bool)$a);  // boolean
    echo (boolean)$a;  // 1
    echo gettype((boolean)$a);  // boolean
    
    1. 强转为数组
      (array)
    $a = '1';
    print_r((array)$a);  // Array ( [0] => 1 ) 
    echo gettype((array)$a);  // array
    
    1. 强转为对象
      (object)
    $a = '1';
    print_r((object)$a);  // stdClass Object ( [scalar] => 1 )
    echo gettype((object)$a);  // object
    
    • 使用 settype(变量,'变量类型') 设置变量类型
    $a = '1';
    settype($a,'boolean');
    echo($a);  // 1
    echo(gettype($a));  // boolean
    

    相关文章

      网友评论

          本文标题:php 数据类型和数据类型转化

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