0

首先,由于我的变量字符串的定义方式,我无法在线找到此答案。通常我应该能够将 0 添加到变量中,或者使用 (int),但它不起作用。

<?php

$casestringid = "'118'";
$caseid = $casestringid + 0;

echo $casestringid;

echo $caseid;

?>

输出:'118'0

如您所见,由于我的第一个变量的声明方式,将字符串转换为整数的标准方法不起作用。My$casestringid是这样写的,因为它从另一个页面请求一个数字。与其尝试更改其格式,我认为更容易获得有关如何将看起来像这样的字符串转换为整数的帮助。我希望输出为caseid118。提前感谢您的帮助。

4

7 回答 7

3

问题在于,'118'PHP解析器而言,它不是整数,而是字符串。当然,它对我们来说看起来像是一个整数,但它有斜线 ( ) 使它“不可转换”。'

用于str_replace此:

intval(str_replace("'", '', $casestringid));
于 2013-08-06T18:40:03.463 回答
1

试试intval ($casestringid) + 0

编辑:

那么这个怎么样:

filter_var ($casestringid, FILTER_SANITIZE_NUMBER_INT);
于 2013-08-06T18:36:53.207 回答
1

我认为你没有这样的机会:

intval(str_replace("'",'',$casestringid));
于 2013-08-06T18:38:54.233 回答
1

更换 '':

intval(str_replace("'",'',$casestringid));
于 2013-08-06T18:39:34.877 回答
0

您必须删除单引号并使用intval().

<?php

$casestringid = "'118'";
$parseid = str_replace("'", "", $casestringid);
$caseid = intval($parseid);

echo $casestringid;

echo $caseid;

?>
于 2013-08-06T18:38:49.880 回答
0
$casestringid = "'118'";
$int = str_replace("'", "", $casestringid);
echo intval($int);
于 2013-08-06T18:39:47.880 回答
0

如果它只是您要查找的整数,则可以使用。它将删除任何非数字字符,然后将其作为 int 返回

function parseInt( $s ){
    return (int)(preg_replace( '~\D+~' , '' , $s ));
}
于 2013-08-06T18:51:52.467 回答