使用我的php变量作为公式来计算某些东西

时间:2014-12-06 16:01:18

标签: php

我在发票系统中工作,必须为每个产品计算不同的公式,这需要填充宽度,高度和材料成本。

我做了一个我正在存储的数据库

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但是,我找不到另一种方法来实现它。

2 个答案:

答案 0 :(得分:1)

eval()函数希望string参数是一个正确的代码语句。

$str = '(10*10) * 1000';
echo eval($str);

会给你一个错误,因为php无法评估该字符串。然而,

$str = 'return (10*10) * 1000;';
echo eval($str);

将正确评估表达式。

您应该使用:

$total = 'return ' . $precio . ';';
echo eval($total);

答案 1 :(得分:0)

您使用eval是错误的。传递给eval的字符串必须是有效的PHP代码。即:

$precio2 = '$total = '.$precio.';';
eval($precio2);
echo $total;

http://php.net/manual/en/function.eval.php