<?php

//Калькулятор
error_reporting(-1);
mb_internal_encoding('utf-8');

$input = '243+6743-78*2='; //13816
//$input = '1+2*3='; //9
//$input = "321+3-2=";
$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 == '=') {

        if ($op == '+') {
            $result += $number;
        }

        if ($op == '-') {
            $result -= $number;
        }

        if ($op == '*') {
            $result *= $number;
        }

        echo "op=[{$op}]  result = [{$result}]  number = [{$number}] char = [{$char}] \n";

        if ($result == 0) {
            $result = $number;
        }
        $op = $char;
        $number = 0;

        if ($char == "=") {
            echo "Ответ: {$input}{$result}";
        }

    } elseif (is_numeric($char)) {
        $number = $number * 10 + $char;
    } else {
        echo "Неверный символ: {$char}\n";
    }

}
