$str='200 - 100 - 50 ';
if(preg_match_all('/\s*([+-]?)\s*(\d+)/',$str,$m))
{
$sum=0;
foreach($m[0] as $i=>$v)
$sum+=($m[1][$i]=='-'?-1:1)*$m[2][$i];
echo 'Сумма: '.$sum;
} else
{
echo 'Синтаксическая ошибка';
}
решение не фонтан, кучу ошибок тупо проигнорирует и ты об этом даже не узнаешь