Используя 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" />