3v4l.org

run code in 300+ PHP versions simultaneously
<?php $input = '20-5*2/30+9='; $inputLength = mb_strlen($input); $number = 0; $result = 0; $op = ''; for ($i = 0; $i < $inputLength; $i++) { $char = mb_substr($input, $i, 1); if ($char == '*' || $char == '+' || $char == '-' || $char == '=' || $char == '/') { if ($op == '') { $result = $number; } elseif ($op == '+') { $result += $number; } elseif ($op == '-') { $result -= $number; } elseif ($op == '*') { $result *= $number; } elseif ($op == '/') { $result /= $number; } echo "op[$op] result[$result] number[$number] char[$char] \n"; $op = $char; $number = 0; if ($char == '=') { echo "Ответ: $input$result"; } } elseif (is_numeric($char) || $char == '.') { $number = $number * 10 + intval($char); } else { echo "Неверный символ:'$char\n"; exit(); } }

preferences:
53.32 ms | 402 KiB | 5 Q