PHP将变量字符串转换为int


PHP converting variable string to int

首先,由于变量字符串的定义方式,我无法在线找到这个答案。通常情况下,我应该能够将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 ));
}