Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/PHP自定义数学公式_Javascript_Php_Math_Formula - Fatal编程技术网

Javascript/PHP自定义数学公式

Javascript/PHP自定义数学公式,javascript,php,math,formula,Javascript,Php,Math,Formula,我们可以使用其他变量/数据库中的数学公式吗? 例如: 我的意思是变量将输出=17(7+10) 但是如何使用Javascript/PHP实现这个公式呢?对于您的示例,您可以这样做: var x = 7; var formula = '+'; var y = 10; z = eval(x+formula+y); // 17 document.write(z); 但是eval对于安全性来说是个大问题,你真的不应该使用它。如果您能提供更多关于您试图实现的目标的详细信息,则可以建议一个替代方案。PHP

我们可以使用其他变量/数据库中的数学公式吗? 例如:

我的意思是变量将输出=
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”。

感谢您的PHP版本获奖者:)感谢您的Javascript版本获奖者:)@hakre:Javascript版本如何?请使用搜索。此外,如果您查找javascript,则不应标记为PHP。-可能的副本:
var x = 7;
var y = 10;
var answer = func();