在 PHP 中,怎样将字符串(string)转换为整数(int)
在 PHP 中,将字符串(
string)转换为整数(int)的方法有多种,下面是几种常见的转换方式:
1. 类型强制转换(Casting)
通过将变量强制转换为 int 类型,PHP 会自动将字符串转为整数。数字字符串会被转换为对应的整数,而非数字字符串则会被转换为 0。
示例:
$str = "123";
$int = (int)$str;
echo $int; // 输出 123
$str2 = "abc";
$int2 = (int)$str2;
echo $int2; // 输出 0
2. intval() 函数
intval() 函数用于将字符串转换为整数。你可以指定转换的基数(默认为 10)。
语法:
intval(string $var, int $base = 10): int
$var:要转换的值。$base:可选,转换的进制(默认为 10)。 示例:
$str = "123";
$int = intval($str);
echo $int; // 输出 123
$str2 = "1011"; // 二进制字符串
$int2 = intval($str2, 2);
echo $int2; // 输出 11
注意:如果字符串的内容是非数字字符,intval() 会把它从左到右进行转换,直到遇到非数字字符为止。
3. (int) 强制转换 + filter_var()
你也可以结合 filter_var() 使用,用于更严格的过滤和转换。filter_var() 允许你指定 FILTER_VALIDATE_INT 过滤器来验证和转换字符串。
语法:
filter_var(string $variable, int $filter, array $options = ?)
$filter:FILTER_VALIDATE_INT用于验证整数。$options:可选,设置选项。 示例:
$str = "123";
$int = filter_var($str, FILTER_VALIDATE_INT);
echo $int; // 输出 123
$str2 = "abc";
$int2 = filter_var($str2, FILTER_VALIDATE_INT);
echo $int2; // 输出 false(说明不是有效整数)
4. +0(加零)
通过将字符串与 0 相加,PHP 会自动将字符串转换为数字。这是一种非常简洁的方式,但要注意,非数字字符串会被转换为 0。
示例:
$str = "123";
$int = $str + 0;
echo $int; // 输出 123
$str2 = "abc";
$int2 = $str2 + 0;
echo $int2; // 输出 0
5. settype() 函数
settype() 函数可以用于强制将变量转换为指定的类型。在这里,可以将变量设置为 int 类型。
语法:
settype($var, "integer");
$var:要转换的变量。 示例:
$str = "123";
settype($str, "integer");
echo $str; // 输出 123
6. (int)"" 或 intval() 对空字符串的处理
如果字符串为空,所有这些方法都会返回 0。
示例:
$str = "";
$int = (int)$str;
echo $int; // 输出 0
$str2 = "";
$int2 = intval($str2);
echo $int2; // 输出 0
总结
- 强制转换
(int):适用于简单的类型转换。 intval():适用于转换字符串为整数,支持进制转换。filter_var():适用于更严格的验证和转换。+0:最简洁的方式,但对于非数字字符串会转换为0。settype():将变量的类型修改为int。
这些方法都能根据你的需求来转换字符串为整数。