这篇文章主要介绍“php如何将字符串转化为数字”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php如何将字符串转化为数字”文章能帮助大家解决问题。
4种转换方法:1、使用intval()函数转换,语法“intval($val)”;2、使用settype()函数转换,语法“settype($val,"integer")”;3、在变量前加上用括号括起来的目标类型“(int)”,语法“(int)$val”;4、使用“+”运算符将字符串和数字0相加,语法“$val + 0”。
php将值强制转为数字类型
方法1:使用具体的转换函数intval()
intval() 函数用于获取变量的整数值。
intval() 函数通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。 intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。
<?php
header("Content-type:text/html;charset=utf-8");
$str = '123.456abc';
echo $str."<br>";
$int = intval($str);
echo $int."<br>";
echo '变量 $int 的类型为:' . gettype($int) . '<br>';
echo '<hr>';
$str = 'abc123.456';
echo $str."<br>";
$int = intval($str);
echo $int."<br>";
echo '变量 $int 的类型为:' . gettype($int) . '<br>';
echo '<hr>';
$str = '123.abc456';
echo $str."<br>";
$int = intval($str);
echo $int."<br>";
echo '变量 $int 的类型为:' . gettype($int) . '<br>';
?>
注:使用intval() 函数将字符串转数字时,只能提取字符前的数字,如果字母开头,则提取的数为0.
方法2:使用settype()函数
<?php
header("Content-type:text/html;charset=utf-8");
$str = '123.456abc';
echo $str."<br>";
settype($str,"integer");
echo $str."<br>";
echo '修改后的类型为:' . gettype($str) . '<br>';
echo '<hr>';
$str = 'abc123.456';
echo $str."<br>";
settype($str,"integer");
echo $str."<br>";
echo '修改后的类型为:' . gettype($str) . '<br>';
?>
说明:
settype() 函数用于将变量$var设置为指定$type类型。语法:
settype ( $var ,$type )
$type可设置的值:
"boolean" (或为"bool",从 PHP 4.2.0 起)
"integer" (或为"int",从 PHP 4.2.0 起)
"float" (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的"double"现已停用)
"string"
"array"
"object"
"null" (从 PHP 4.2.0 起)
settype() 函数会改变变量本身的类型。
方法3:在要转换的变量之前加上用括号括起来的目标类型“(int)”或“(integer)”
<?php
header("Content-type:text/html;charset=utf-8");
$str = '123.456abc';
$int = (int)$str;
echo $int."<br>";
echo '变量 $int 的类型为:' . gettype($int) . '<br>';
?>
方法4:使用“+”运算符将字符串和数字0相加
<?php
header("Content-type:text/html;charset=utf-8");
$str = '123abc';
echo $str."<br>";
$int = $str+0;
echo $int."<br>";
echo '变量 $int 的类型为:' . gettype($int) . '<br>';
?>
因为PHP是弱类型的语言,会进行隐形数字类型转换。
关于“php如何将字符串转化为数字”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。