php字符串怎么转整形
时间 : 2023-03-26 03:20:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

在 PHP 中,可以使用 `(int)` 或者 `intval()` 函数将字符串转换成整型。

例如:

```php

$str = "123";

$int1 = (int)$str; // $int1 的值为 123

$int2 = intval($str); // $int2 的值也为 123

需要注意的是,如果字符串以非数字字符开头,将会返回 0。例如:

```php

$str = "abc123";

$int = (int)$str; // $int 的值为 0

如果需要让 `$int` 的值为数字部分,则可以使用 `preg_replace()` 函数去掉非数字字符:

```php

$str = "abc123";

$int = (int)preg_replace("/[^0-9]/", "", $str); // $int 的值为 123

`preg_replace()` 函数接受三个参数:正则表达式模式、替换成的字符串和源字符串。上面的例子中,正则表达式模式 `/[^0-9]/` 表示匹配除了数字以外的所有字符,并将其替换为空字符串。因此,此处的 `preg_replace()` 函数会将字符串 `$str` 中的非数字字符全部替换为空字符串,然后返回一个纯数字的字符串,最后使用 `(int)`强制类型转换成整型。

除此之外,还可以使用 `filter_var()` 函数进行类型转换,示例代码如下:

```php

$str = "123";

$int = filter_var($str, FILTER_SANITIZE_NUMBER_INT); // $int 的值为 123

`FILTER_SANITIZE_NUMBER_INT` 常量表示过滤器类型为纯数字,`filter_var()` 函数将返回过滤后的整数值。与 `preg_replace()` 函数类似,这种方式也可以过滤字符串中的非数字字符。

PHP中可以使用`intval()`函数将字符串转化为整型。

`intval()`函数的一般用法是:

```php

intval($string);

其中,`$string`为需要转化的字符串。

`intval()`函数会将字符串参数转换成整数类型。如果 `$string` 中的第一个字符不是数字或正负号,`intval()` 函数将返回 `0`。如果 `$string` 以数字和正负号开头,`intval()` 函数会将这些数字和符号提取出来,并且忽略后面的其他字符,返回整数。

下面是一些例子:

```php

echo intval('123'); // 输出 123

echo intval('0x123'); // 输出 291 (十六进制转十进制)

echo intval('123', 8); // 输出 83 (八进制转十进制)

echo intval('hello123'); // 输出 0 (不是数字或正负号开头)

echo intval('123world'); // 输出 123 (提取开头的数字)

echo intval('+123xyz', 10); // 输出 123 (提取开头的数字和正负号)

需要注意的是,如果需要将字符串转换成二进制、八进制或十六进制格式的数字,可以在函数中加入参数并指定进制数。例如,在第三个例子中,`8`指定进制数为八进制,所以将字符串`'123'`转换成了八进制格式的数字`83`。

此外,如果要处理大数,可以使用`bcadd()`和`bcmul()`等函数来处理。