<?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;
}else if ($op == '='){
echo $result;
}
$op = $char;
$number = 0;
} elseif (is_numeric($char)){
$number = $number * 10 + $char;
} else {
echo "Неверный символ: {$char}\n";
}
}
function reporting($op, $result, $number, $char){
echo "op = [{$op}], result = [{$result}], number = [{$number}], char = [{$char}]\n";
}
preferences:
31.77 ms | 402 KiB | 5 Q