2016-05-10 18 views
1

Wenn ich eine Zeichenfolge wie folgt haben:
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
ich es die Mathematik zu tun brauchen eigentlich tun.

Also, wenn $a = '0+1+0+0+0+0+0+1'
Es wäre eine weitere Variable gesetzt und legen Sie es als:
2PHP Eval Variable und setzen Sie eine andere Variable

Antwort

3

Sie sollten nie eval Strings die Summe der Zahlen in der Kette ist, wenn Sie es vermeiden kann. Es gibt eine triviale vernünftige Lösung für das Parsen und Summieren dieser besonderen string:

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

Wenn Sie mehr mögliche Operationen unterstützen wollen als nur +, Sie würden eine etwas komplexere preg_split tun, dann Schleife über die daraus resultierenden Produkte und bewerten jeder einzelne Operator und Summe oder Subtraktion oder was auch immer basierend auf dem angetroffenen Operator in einer Schleife.

+0

Vielen Dank, das hilft wirklich. Ich weiß, Eval ist schlecht, es war die erste Lösung, die mir in den Sinn kam. – StratHaxxs

0

Sie die PHP-eval Funktion können Sie wie folgt.

<?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); 
?> 

Dies wird Ausgang int(31) die

+1

lässt hoffen, es ist kein Benutzer eingereicht String –

Verwandte Themen