使用PHP尝试将str转换为int

时间:2011-12-09 00:28:32

标签: php string forms int

我真的不明白为什么这不起作用,所以请帮忙。我正在尝试将str转换为int并使用它执行if语句,但我不能出于某种原因。代码跳过if语句,就好像它甚至没有???

<?php
$cost = $_REQUEST['cost'];
$cost = (int) $cost;

if($cost < 2){
  header('Location: page.php?say=numerror');
}
?>

<input name="cost" id="cost" type="text" class="tfield" />

3 个答案:

答案 0 :(得分:1)

试试这个:

<?php
 $cost = $_REQUEST['cost'];
 $cost = intval($cost);

if($cost < 2){
header('Location: page.php?say=numerror');
}
?>

// HTML
<input name="cost" id="cost" type="text" class="tfield" />

以下是关于 intval() PHP reference manual的intval()函数的更多信息。我希望,这会有所帮助。

如果这对你没有帮助。这是PHP函数,你可以从string中分离整数。

<?php
function str2int($string, $concat = true) {
$length = strlen($string);   
for ($i = 0, $int = '', $concat_flag = true; $i < $length; $i++) {
    if (is_numeric($string[$i]) && $concat_flag) {
        $int .= $string[$i];
    } elseif(!$concat && $concat_flag && strlen($int) > 0) {
        $concat_flag = false;
    }       
}

return (int) $int;
}

// Callings
echo var_dump(str2int('sh12apen11')); // int(12)
echo var_dump(str2int('sh12apen11', false)); // int(1211)
echo var_dump(str2int('shap99en')); // int(99)
echo var_dump(intval('shap99en')); // int(0)
?>

从上面的链接复制的P.S功能。不是我的。

答案 1 :(得分:1)

我怀疑你需要:

if ($cost < 2) {
    exit(header('Location: page.php?say=numerror'));
}

答案 2 :(得分:1)

为什么需要转换才能使用:

<?php
$cost = $_REQUEST['cost'];
if($cost < 2 or !is_numeric($cost)){
header('Location: page.php?say=numerror');
}
?>
<input name="cost" id="cost" type="text" class="tfield" />