php转换数字类型有哪些?

php转换数字类型有哪些?
最新回答
最初

2026-10-31 15:42:55

PHP中的数字类型转换主要分为自动类型转换和强类型转换两种方式,具体如下:

1. 自动类型转换
PHP作为弱类型语言,会在运算或赋值时自动调整数据类型。常见场景包括:

  • 布尔值转数字:true转为1,false转为0(如true + 1结果为2)。
  • 字符串转数字:从字符串开头解析数字,直到遇到非数字字符(如"123abc" + 1结果为124,"abc123"转为0)。
  • 整型与浮点数互转:整型转浮点数精度不变;浮点数转整型时直接舍去小数部分(如3.9转为3),超出整型范围时结果不确定。
  • null转数字:null转为0(如null + 1结果为1)。

2. 强类型转换
通过显式函数或语法强制转换类型,包括:

  • 括号语法:使用(int)、(float)、(string)等(如(int)"123.45"结果为123)。
  • 专用函数:

    intval():转为整型(如intval("10.5")结果为10)。

    floatval():转为浮点型(如floatval("3.14")结果为3.14)。

    strval():转为字符串(如strval(100)结果为"100")。

  • settype()函数:永久修改变量类型(如settype($var, "integer"))。

注意事项:

  • 自动转换可能导致意外结果(如字符串含非数字字符时转换结果为0)。
  • 强转换中,settype()会直接修改变量,而intval()等函数仅返回转换后的值。

建议根据场景选择合适方式,并注意类型转换的边界条件(如浮点数精度、字符串格式等)。