繁体   English   中英

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

[英]PHP Eval variable and set another variable

如果我有这样的字符串:
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

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

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

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

您可以使用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) ,它是字符串中整数的总和

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM