3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(-1); $input = '243+6743-78*2='; $inputLenght = mb_strlen($input); $number = 0; $result = 0; $op = ''; for ($i = 0; $i < $inputLenght; $i++){ $char = mb_substr($input, $i, 1); if ($char == '+' || $char == '-' || $char == '*' || $char == '='){ if ($op == ''){ reporting($op, $result, $number, $char); $result = $number; }else if ($op == '+'){ reporting($op, $result, $number, $char); $result = $result + $number; }else if ($op == '-'){ reporting($op, $result, $number, $char); $result = $result - $number; }else if ($op == '*'){ reporting($op, $result, $number, $char); $result = $result * $number; } $op = $char; $number = 0; } elseif (is_numeric($char)){ $number = $number * 10 + $char; } else { echo "Неверный символ: {$char}\n"; } } echo "Ответ: {$input}{$result}\n"; function reporting($op, $result, $number, $char){ echo "op = [{$op}], result = [{$result}], number = [{$number}], char = [{$char}]\n"; }
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.38, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.7
op = [], result = [0], number = [243], char = [+] op = [+], result = [243], number = [6743], char = [-] op = [-], result = [6986], number = [78], char = [*] op = [*], result = [6908], number = [2], char = [=] Ответ: 243+6743-78*2=13816

preferences:
269.62 ms | 406 KiB | 452 Q