- preg_split: documentation ( source)
<?php
function calc(float $number, float $result, string $operation) {
echo "$result $operation $number = ";
if ($operation == "+") {
$result += $number;
} elseif ($operation == "-") {
$result -= $number;
} elseif ($operation == "*") {
$result *= $number;
} elseif ($operation == "/") {
$result /= $number;
}
echo "$result\n";
return $result;
}
$input = "144/2*5-14.4=";
$numbers = preg_split('/[+]|[-]|[=]|[*]|\\//u', $input);
$operations = preg_split('/[0-9]+[.]*[0-9]*/', $input);
foreach ($numbers as &$number) {
$number = floatval($number);
}
$result = $numbers[0];
for ($i = 1; $i < count($numbers) - 1; $i++) {
$result = calc($numbers[$i], $result, $operations[$i]);
}
echo $input.$result;