Используя PHP, пытаюсь преобразовать str в 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 ответа

Решение

У меня есть подозрение, что вам нужно:

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

Попробуй это:

<?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 по intval(). Надеюсь, это будет полезно.

Если это не поможет вам. Вот PHP-функция, где вы из строки можете отделять целые числа.

<?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)
?>

PS Функция скопирована из ссылки выше. Это не мое.

Зачем вам нужно преобразование, просто используйте это:

<?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" />
Другие вопросы по тегам