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

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);

【讨论】:

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