<?php

error_reporting(-1);
mb_internal_encoding("utf-8");

$input = '243+6743/3-78*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 == '=' || $char == '/'){
  echo "op = [{$op}], result = [{$result}], number = [{$number}], char = [{$char}]\n";
    switch($op){
      case '*':
	$result = $result * $number;
	break;
      case '+':
	$result = $result + $number;
	break;
      case '-':
	$result = $result - $number;
	break;
      case '/':
	$result = round($result / $number,2);
	break;
    	default:
	$result = $number;
	break;
    }
    $op = $char;
	$number = 0;
      if($char == '='){
	  echo "Ответ: {$input}{$result}\n";
	  exit();
      }
  }elseif (is_numeric($char)){
    $number = $number*10+intval($char);
  }else{
    echo "Неверный символ: '$char'\n";
  }
}