В случае, если условие передаст значение post с условным оператором

Я хочу опубликовать условный оператор из формы ввода. И в состоянии ЕСЛИ используйте размещенный оператор. Невозможно сделать любую логику, чтобы получить это сделано.

<form action="" method="post" accept-charset="utf-8">
<input name="postvalue"  size="5" maxlength="7" value=">=5">
<p><input type="submit" value="Go"></p>
</form>

<?php
if(10 $_POST["postvalue"]) {
echo "Its greater than 5";
} else {
echo "Its less than 5";
}?>

0

Решение

Вы, вероятно, ищете что-то вроде этого:

<form action="" method="post" accept-charset="utf-8">
<input name="term"  size="5" maxlength="7" value=">=5">
<p><input type="submit" value="Go"></p>
</form>

<?php
// separate operator and operand from the posted value
preg_match('/^([=<>!]+)([0-9]+)$/', $_POST['term'], $tokens);
$operator = $tokens[1];
$operand  = $tokens[2];

// create an evaluation function
$check = create_function('$value', '
$operand = '.$operand.';
switch("'.$operator.'") {
case "==": return ($value==$operand);
case "!=": return ($value!=$operand);
case "<":  return ($value<$operand);
case "<=": return ($value==$operand);
case ">":  return ($value>$operand);
case ">=": return ($value>=$operand);
default:   throw new Exception("invalid operator");
}');

// apply the evaluation function to some value
try {
if ($check(10)) {
echo "10 is greater than 5";
} else {
echo "10 is less than 5";
}
} catch (Exception $e) {
echo sprintf('Exception: %s', $e->getMessage());
}
?>

Очевидно, обнаружение ошибок должно быть добавлено и тому подобное …

В любом случае, это довольно «странная» архитектура … Рассмотрим другие подходы, так как этот подход несколько склонен к сбоям. Вместо этого вы должны разместить операнд и оператор в отдельных полях ввода (полях публикации), чтобы упростить оценку и сделать вещи более надежными. Оператор, вероятно, должен быть предложен в качестве входных данных выбора, операнд в качестве счетчика чисел …

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]