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

2023-01-15  本文已影响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. 参与计算时,自动转化为整型和浮点型
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. 参与字符串拼接时,自动转化为字符串类型
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
$a = '1';
settype($a,'boolean');
echo($a);  // 1
echo(gettype($a));  // boolean
上一篇下一篇

猜你喜欢

热点阅读