Я работаю в системе счетов-фактур, которая должна вычислять разные формулы для каждого продукта, которые должны быть заполнены стоимостью Width, Height и Material.
Я сделал базу данных, где храню
t_title -> "Curtain 1"
t_formula -> "({ANCHO}*{ALTURA})*{PRECIO}"
и затем php делает следующее:
<?php
$ancho = str_replace("{ANCHO}", $_POST['ancho'], $articulo['t_formula']);
$alto = str_replace("{ALTURA}", $_POST['alto'], $ancho);
$precio = str_replace("{PRECIO}", $_POST['precio'], $alto);
$total = $precio; echo eval($total);
?>
и результат ничего не дает, а пробел.
Как я могу заставить его работать? Я знаю, что php не может вычислять из переменных как php, но я не могу найти другой способ сделать это.
Функция eval() ожидает, что строковый параметр является правильной инструкцией кода.
$str = '(10*10) * 1000';
echo eval($str);
даст вам ошибку, потому что php не может оценить эту строку. Однако,
$str = 'return (10*10) * 1000;';
echo eval($str);
будет правильно оценивать выражение.
Вы должны использовать:
$total = 'return ' . $precio . ';';
echo eval($total);
Использование eval
неверно. Строка, переданная eval, должна быть действительной PHP-кодом. то есть:
$precio2 = '$total = '.$precio.';';
eval($precio2);
echo $total;
$total = (10*10)*1000
t_formula
естьx
s или*
s?