学科分类
目录
PHP基础

数据类型转换

在PHP中,对两个变量进行操作时,若其数据类型不相同,则需要对其进行数据类型转换。通常情况下,数据类型转换分为自动类型转换和强制类型转换,下面对这两种数据类型转换进行详细介绍。

1. 自动类型转换

自动类型转换,是指当运算需要或与期望的结果类型不匹配时,PHP将自动进行类型转换,无需开发人员做任何操作。在程序开发过程中,最常见的自动类型转换有3种,分别为转换成布尔型、转换成整型和转换成字符串型。在转换时的具体细节如下。

  • 转换成布尔类型时,整型值0、浮点型值0.0、空字符串、以及字符串“0”都会被转为false,其他值会被转为true。
  • 布尔型转换成整型时,布尔值true转换成整数1;布尔值false转换成整数0。
  • 浮点数转换成整数时,将向下取整。
  • 字符串型转换为整型时,若字符串是以数字开始,则使用该数值,否则转换为0。
  • 布尔型转换成字符串时,布尔值true转换成字符串“1”;布尔值false转换成空字符串。
  • 整型或浮点型转换成字符串时,直接将数字转换成字符串形式。

为了大家更好地理解PHP自动数据类型的转换,表1列举了一些转换的示例。

表1 自动类型转换示例

转换类型 示例 输出结果
转换成布尔型 var_dump( 0 == false ); bool(true)
转换成布尔型 var_dump( 3.14 == false ); bool(false)
转换成布尔型 var_dump( 'abd' == false ); bool(false)
转换成布尔型 var_dump( NULL == false ); bool(true)
转换成整型 var_dump( '888php' == 888 ); bool(true)
转换成整型 var_dump( 'php888' == 888 ); bool(false)
转换成整型 var_dump( true + 1 ); int(2)
转换成字符串型 var_dump( 'true is' . true ); string(8) "true is1"
转换成字符串型 var_dump( '3' ); string(1) "3"
转换成字符串型 var_dump( '3.14' ); string(4) "3.14"

在表1中,“==”运算符用来比较前后两个值是否相等,如果前后两个值的数据类型不同,就会自动转换成相同数据类型后再进行比较。

2. 强制类型转换

强制类型转换,就是在编写程序时手动转换数据类型,在要转换的数据或变量之前加上“(目标类型)”即可。如表2列举了PHP中强制转换的类型。

表2 强制类型转换

强制类型 功能描述 强制类型 功能描述
(boolean) 转为布尔型 (float) 转为浮点型
(string) 转为字符串型 (array) 转为数组
(integer) 转为整型 (object) 转为对象

为了让大家更好地理解,下面进行代码演示。

   var_dump((boolean)-5.9);     // 运行结果:bool(true)
   var_dump((integer)'hello');  // 运行结果:int(0)
   var_dump((float)false);     // 运行结果:float(0)
   var_dump((string)12);      // 运行结果:string(2) "12"
点击此处
隐藏目录