php提供五种类型转换方式:一、强制转换如(int)"123";二、settype()修改原变量;三、intval()等专用函数;四、==隐式转换;五、filter_var()安全转换。

PHP 是一种弱类型语言,变量在声明时无需指定类型,其类型会根据赋值内容自动确定。当需要改变变量的当前类型以满足特定操作需求时,可通过多种方式实现类型转换。以下是具体方法:
一、强制类型转换(类型转换符)
通过在变量前添加括号包裹的类型名称,可立即生成对应类型的副本,原变量不受影响。该方式适用于表达式中临时转换。
1、将字符串 "123" 转为整型:(int) "123" 或 (integer) "123",结果为 123。
2、将数字 3.14 转为字符串:(string) 3.14,结果为 "3.14"。
立即学习“PHP免费学习笔记(深入)”;
3、将空数组 [] 转为布尔型:(bool) [],结果为 false。
二、使用 settype() 函数修改原变量类型
该函数直接修改变量自身的类型和值,返回布尔值表示是否成功。与强制转换不同,它不返回新值,而是就地变更。
1、定义变量 $var = "42";。
2、执行 settype($var, "integer");。
3、此时 $var 的值变为 42,类型为 integer,var_dump($var) 输出 int(42)。
三、使用类型转换函数进行显式转换
PHP 提供了多个专用函数,用于将变量转换为特定类型并返回新值。这些函数更明确且部分具备容错处理能力。
1、使用 intval() 将 "99.99" 转为整数:intval("99.99"),结果为 99(截断小数部分)。
2、使用 floatval() 将 "1e3" 转为浮点数:floatval("1e3"),结果为 1000.0。
3、使用 strval() 将 true 转为字符串:strval(true),结果为 "1"。
四、类型转换中的隐式转换场景
在运算或比较过程中,PHP 会依据上下文自动进行类型转换,无需手动干预。理解其规则可避免意外行为。
1、字符串与数字相加时,如 "5" + 3,"5" 自动转为整型 5,结果为 8。
2、使用 == 比较时,"0" == false 返回 true,因字符串被转为整型再与布尔比较。
3、使用 === 则不触发隐式转换,"0" === false 返回 false,因类型不同。
五、使用 filter_var() 进行安全类型转换
该函数支持数据过滤与验证,适用于需兼顾类型转换与输入校验的场景,尤其适合处理用户输入。
1、将字符串 "127.0.0.1" 验证并转换为 IP 地址格式:filter_var("127.0.0.1", FILTER_VALIDATE_IP),成功时返回原字符串。
2、将 "42" 安全转为整数:filter_var("42", FILTER_VALIDATE_INT),返回 42;若输入为 "abc",则返回 false。
3、将 "3.1415" 转为浮点数并限制范围:filter_var("3.1415", FILTER_VALIDATE_FLOAT, ["options" => ["min_range" => 0, "max_range" => 10]]),符合条件则返回 3.1415。











