PHP Eval变量并设置另一个变量
如果我有这样的字符串:PHP Eval变量并设置另一个变量,php,Php,如果我有这样的字符串: 0+1+0+0+0+0+0+0+1+1+0+0+1+0+1+1+0+0+0+1+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+1+0+0+0+1+0+1+1+1+0+1+0+1+1+0+0+0+0+0+0+0+0+0+0+1+1+1 我需要它,做数学题。 所以如果$a='0+1+0+0+0+0+0+0+1' 它将设置另一个变量并将其设置为: 2您可以使用phpeval函数,如下所示 <?php $string="0+1+0+0+0+0+0+1+0+
0+1+0+0+0+0+0+0+1+1+0+0+1+0+1+1+0+0+0+1+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+1+0+0+0+1+0+1+1+1+0+1+0+1+1+0+0+0+0+0+0+0+0+0+0+1+1+1
我需要它,做数学题。
所以如果
$a='0+1+0+0+0+0+0+0+1'
它将设置另一个变量并将其设置为:
2
您可以使用phpeval
函数,如下所示
<?php
$string="0+1+0+0+0+0+0+1+0+1+1+1+1+0+0+1+0+1+1+1+1+0+0+1+0+0+1+0+0+0+0+0+0+1+1+0+1+1+0+0+0+1+1+0+1+1+0+1+0+1+1+0+0+0+0+1+0+1+1+0+1+1+1+1";
eval("\$val=$string;");
var_dump($val);
?>
这将输出
int(31)
,它是字符串中整数的总和如果您可以帮助,您永远不应该eval
字符串。对于解析和求和这个特定字符串,有一个简单而理智的解决方案:
$string = '0+1+...';
$result = array_sum(explode('+', $string));
如果你想支持更多可能的操作,而不仅仅是
+
,你需要做一个稍微复杂一点的preg_split
,然后循环结果项,并根据循环中遇到的运算符计算每个单独的运算符和或求和或减法或其他任何操作。希望不是用户提交的字符串谢谢你,这真的很有帮助。我知道eval
不好,这是我想到的第一个解决方案。