我真的不明白为什么这不起作用,所以请帮忙。我正在尝试将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" />
答案 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" />