我们可以使用其他变量/数据库中的数学公式吗?例:
var x = 7;
var formula = '+';
var y = 10;
我的意思是变量将输出 = 17
(7 + 10);
但是如何使用Javascript/PHP实现这个公式呢?
对于您的示例,您可以这样做:
var x = 7;
var formula = '+';
var y = 10;
z = eval(x+formula+y); // 17
document.write(z);
但是eval
是安全性的一个大问题,你真的不应该使用它。如果您可以提供有关您要实现的目标的更多详细信息,则可以建议替代方案。
PHP 版本
在 PHP 中使用 eval()
运行 PHP 代码段:
<?php
$x = 7;
$formula = '+';
$y = 10;
$expression = '$result = ' .$x . ' ' . $formula . ' ' . $y . ";";
echo $expression, "n"; // $result = 7 + 10;
eval($expression); // run the code
echo $result, "n"; // ouput 17
在此处查看代码的结果
在 php 中,你可以按如下方式使用。您可以通过这种方式避免eval
。
$x = 7;
$formula = '+';
$y = 10;
switch ($formula) {
case "+" : $res = $x + $y;
break;
case "-" : $res = $x - $y;
break;
.
.
.
.
}
echo $res;
这样的东西应该在PHP和javascript中工作(稍作修改)。此外,出于安全原因,我建议不要使用 eval 什么。
function math($x, $y, $sign){
switch($sign){
case '+':
return $x + $y;
case '-':
return $x - $y;
case '*':
return $x * $y;
case '/':
return $x / $y;
default:
return;
}
}
$x = 7;
$formula = '+';
$y = 10;
echo math($x, $y, $formula);#returns 17
如果你要用'eval('反复计算文本公式),你可能希望把它存储在一个函数中 - 像这样:
var formula = "x + y";
var func;
eval("func = function(){return" + formula + "}");
此时,当变量 x 和 y 存在于给定范围内时,您可以随时调用 'func()'。例如:
var x = 7;
var y = 10;
var answer = func();
答案的值将是"17"。