0

我有字符串:

'$a["m"]*$a["m"]'

我想做的是,$a["m"] 变成它的值(例如 5)并且我的程序执行操作(所以它将是 5*5 所以 25)。

编辑:

我知道,我可以这样做:

$a["m"].'*'.$a["m"]

但是我不想;)我不能。它将在一段时间内出现在一个字符串中,然后我计划计算它(当所有变量都有值时)。

我正在制作类似“公式计算器”的东西。我用字符串编写公式,现在,当我的程序运行并设置了所有需要的数据时,我可以计算这个字符串。所有这些公式都将在数据库中,因此我将其作为字符串获取。

抱歉,我没有具体说明问题所在。

4

3 回答 3

3

这就是pow()

$a['m'] = pow($a['m'], 2);

如果您的值按字面意思存储为字符串,那么您需要eval()

$a["m"] = '5';
$str = '$a["m"]*$a["m"]';
$var = eval("\$result = $str;");
echo $result;

输出:

25

引用 PHP 的创建者 Rasmus Lerdorf 的话:

如果 eval() 是答案,那么您几乎肯定会问错问题。

对于您的使用,我认为最好使用诸如 WolframAlpha 之类的 API。

从这里开始:http ://products.wolframalpha.com/api/libraries.html

于 2013-09-22T13:04:12.807 回答
1

您应该查看连接。下面的示例应该可以满足您的需求。

$Var = $a["m"].'*'.$a["m"];
于 2013-09-22T13:04:20.650 回答
0

先双排"后单排'

$a =$a['m'].' * ' . $a['m'];

根据您更新的问题:

您想在字符串中显示总数。

echo "The product of two numbers is:" .$a['m']. '*' .$a['m'] ";
于 2013-09-22T13:04:34.157 回答