gpt4 book ai didi

php - 使用 eval 从字符串计算数学表达式

转载 作者:IT王子 更新时间:2023-10-28 23:54:37 24 4
gpt4 key购买 nike

我想从一个字符串计算数学表达式。我已经读过这个问题的解决方案是使用 eval()。但是当我尝试运行以下代码时:

<?php

$ma ="2+10";
$p = eval($ma);
print $p;

?>

它给了我以下错误:

Parse error: syntax error, unexpected $end in C:\xampp\htdocs\eclipseWorkspaceWebDev\MandatoryHandinSite\tester.php(4) : eval()'d code on line 1

有人知道这个问题的解决方案吗?

最佳答案

虽然我不建议为此使用 eval (它不是 解决方案),但问题是 eval 需要完整的行代码,而不仅仅是片段。

$ma ="2+10";
$p = eval('return '.$ma.';');
print $p;

应该做你想做的。


更好的解决方案是为您的数学表达式编写分词器/解析器。下面是一个非常简单的基于正则表达式的例子:

$ma = "2+10";

if(preg_match('/(\d+)(?:\s*)([\+\-\*\/])(?:\s*)(\d+)/', $ma, $matches) !== FALSE){
$operator = $matches[2];

switch($operator){
case '+':
$p = $matches[1] + $matches[3];
break;
case '-':
$p = $matches[1] - $matches[3];
break;
case '*':
$p = $matches[1] * $matches[3];
break;
case '/':
$p = $matches[1] / $matches[3];
break;
}

echo $p;
}

关于php - 使用 eval 从字符串计算数学表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com