У меня есть приведенный ниже фрагмент кода, который будет передавать ввод в число с плавающей запятой и создавать математический оператор переменной либо >
, либо <
в зависимости от того, является ли число с плавающей запятой положительным или отрицательным.
// allow custom variance from user input
if (isset($request->custom_variance)) {
$variance_amount = floatval($request->custom_variance);
($variance_amount < 0) ? $operator = " < " : $operator = " > ";
} else {
// set default
$variance_amount = floatval(-50);
$operator = " < ";
}
Затем я использую эти переменные в операторе if, который я выгрузил здесь, чтобы показать вывод:
var_dump((floatval($value_one) - floatval($value_two)).$operator.$variance_amount);
// returns "-51.35 < -50"
Если я жестко закодирую значения, я получу это (это работает так, как я хочу логическое значение)
var_dump((floatval($value_one) - floatval($value_two)) < -50);
// returns true
Я кое-что читал здесь об этом, и кажется, что он не работает, поскольку мой оператор интерпретируется как строка, но я хотел бы по возможности избегать использования функции eval()
.
Какие-либо предложения?