PHP 数据类型转换

PHP 查看和判断数据类型

自动类型转换(隐式转换)

当进行运算时,会发生隐式转换。通常只有 4 中标量类型(integerfloatstringboolean)才能发生 隐式转换。需要注意的是,这并没有改变这些运算数本身的类型,改变的仅是这些运算数如何被求值。
file

  • 布尔值 参与运算时,TRUE 将转换为整型 1FALSE 转化为整型 0 后再参与运算。
  • NULL 值参与运算时,NULL 值将转换为整型 0 再参与运算。
  • integer 型和 float 型的值参与运算时,先把 integer 型变量转换为 float 类型后再参与运算。
  • 有字符串和数值型(integer,float)数据参与运算时,字符串先转换为数字,再参与运算
    • (float) "123.45abc" 转换为 123.45 。(数字在前)
    • (float) "abc123.45" 转换为 0 。(数字在后)

强制类型转换(强制转换)

与两种方式实现强制类型转换:

  1. 在要转换的变量之前加上用括号括起来的目标类型:
    • (int)(integer):转换为 整型
    • (bool)(boolean):转换为 布尔型
    • (float)(double)(real):转换为 浮点型
    • (string):转换为 字符串
    • (array):转换为 数组
    • (object):转换为 对象
  2. 使用具体的转换函数,即 intval()floatval()strval() 等,或是使用 settype() 函数转换类型
    • 注意:settype() 函数会将 变量本身类型 转换成其他类型,其他函数则不会。

类型转换细节

整数转换为浮点型,由于浮点型的精度范围远大于整型,所以转换后的精度不会改变。浮点型转换为整型,将自动舍弃小数部分,只保留整数部分。如果一个浮点数超过整型数字的有效范围,其结果将是不确定的。整型的最大值约为 2.147e9。当字符串转为数字时,转换后的数字时从字符串开始部分的数值型字符串,数值型字符串包括用科学计数法表示的数字。NULL 值转换为字符串,为空字符串 ""

讨论数量: 0

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!