PHP Eval变量并设置另一个变量

时间:2016-05-10 01:43:43

标签: php

如果我有这样的字符串:
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
我需要它确实做数学。

所以如果$a = '0+1+0+0+0+0+0+1'
它将设置另一个变量并将其设置为:
2

2 个答案:

答案 0 :(得分:3)

如果你能提供帮助,你永远不应该eval字符串。解析和总结这个特定字符串有一个简单明智的解决方案:

$string = '0+1+...';
$result = array_sum(explode('+', $string));

如果你想支持比+更多的可能操作,你会做一个稍微复杂的preg_split,然后循环结果项并评估每个单独的运算符并求和或减去或等等基于循环中遇到的运算符。

答案 1 :(得分:0)

您可以使用php eval函数,如下所示。

<?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),它是字符串

中整数的总和