首先,由于变量字符串的定义方式,我无法在线找到这个答案。通常情况下,我应该能够将0添加到变量中,或者使用(int),但它不起作用。
<?php
$casestringid = "'118'";
$caseid = $casestringid + 0;
echo $casestringid;
echo $caseid;
?>
输出:'118'0
正如您所看到的,由于我的第一个变量的声明方式,将字符串转换为整数的标准方法不起作用。我的$casestringid
是这样写的,因为它从另一个页面请求一个数字。我认为,与其试图改变它的格式,不如寻求如何将一个看起来像这样的字符串转换为整数的帮助。我希望caseid
的输出为118。感谢您提前提供的帮助。
问题是'118'
是而不是就PHP解析器而言,它是一个字符串。当然,对我们来说,它看起来像一个整数,但它有斜杠('
),这使它"不可证明"。
对此使用str_replace
:
intval(str_replace("'", '', $casestringid));
我想你没有其他机会了:
intval(str_replace("'",'',$casestringid));
替换":
intval(str_replace("'",'',$casestringid));
尝试intval ($casestringid) + 0
。
编辑:
那么这个怎么样:
filter_var ($casestringid, FILTER_SANITIZE_NUMBER_INT);
您必须删除单引号并使用intval().
<?php
$casestringid = "'118'";
$parseid = str_replace("'", "", $casestringid);
$caseid = intval($parseid);
echo $casestringid;
echo $caseid;
?>
$casestringid = "'118'";
$int = str_replace("'", "", $casestringid);
echo intval($int);
如果它只是您要查找的一个整数,这可能会起作用。它将删除任何非数字字符,然后将其作为int 返回
function parseInt( $s ){
return (int)(preg_replace( '~'D+~' , '' , $s ));
}