将字符串转换为数学方程[重复]

Posted

技术标签:

【中文标题】将字符串转换为数学方程[重复]【英文标题】:Convert string into Math equation [duplicate] 【发布时间】:2014-10-17 15:16:41 【问题描述】:

我只是想将包含方程式的字符串转换为实际的 php 数学方程式,这可能使用 PHP5+ 吗?如果有,怎么做?

以下是字符串的一些示例:

$string = "37-0";
$string = "315+10";
$string = "25+50";
$string = "88-13";

如果可能的话,我只是想将这些解析为正确的数学答案

【问题讨论】:

它会有什么问题 ***.com/questions/12692727/… 的公认答案是非常好的安全数学方程计算器,没有任何 eval 的问题和危险 【参考方案1】:

试试这个:

$str = '37 - 0';
eval( '$result = (' . $str. ');' );
echo $result;

查看eval function

将给定的代码评估为 PHP。

附带说明:

eval() 语言结构非常危险,因为它允许 执行任意 PHP 代码。因此不鼓励使用它。如果你 已经仔细验证除了使用这个没有其他选择 构造,特别注意不要传递任何用户提供的数据 在没有事先正确验证的情况下进入它。

【讨论】:

这个解决方案写得更好,但我更喜欢@Valentin Mercier 的方法(如下):它只需要最后一个分号即可。例如。 $result = eval("return " . $string . ";");【参考方案2】:

您正在寻找the PHP function eval

像这样使用它:

$string = "88-13";
$result = eval("return " . $string);

【讨论】:

以上是关于将字符串转换为数学方程[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将元组条目变量转换为数学问题的 int 的问题

java 中字符串能不能直接转换为数学表达式进行计算,不可以要怎么转换,求具体代码。简单点,最好带括号

如何将简单的计算机算法转换为数学函数以确定大 o 符号?

C++或C语言如何将字符串转化为数学表达式

sql 语句 ,怎么将字符型转换为数字型(整型,浮点型)都行,用啥函数 在线等

js中的类型转换