<?php
mb_internal_encoding('utf-8');

// куркулятор
$input = '2.5+7.5/2*10=';
$inputLength = mb_strlen ($input);

$result = 0; // Текущее число, которое набирает пользователь
$number = 0; // Результат предыдущих действий
$op = ''; // Предыдущая операция
$resultatText = "Ответ: ";

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";
        $resultatText .= $number . $char;

        if ($op=='') {
           $op = $char;
           $result = $number;
           $number=0;
        } else {
            $result = operation($result, $number, $op);
            $number = 0;
            $op = $char;
        }      

    } elseif (is_numeric($char) | $char=='.') {
        if ($number==0) {
            $number = $char;
        } else {
            $number .= $char;
        }        
    } else {
        echo "Неверный символ: '$char'\n";
    }
}
echo "$resultatText$result\n";

function operation ($result, $number, $op) {
    $number = floatval($number);
    
    if ($op =='*' ) {
        $result *= $number;
    } elseif ($op =='/') {
        $result /= $number;
    } elseif ($op =='+') {
        $result += $number;
    } elseif ($op =='-') {
        $result -= $number;
    } elseif ($op =='=') {
        echo "result: $result\n";
        exit();
    } 
    return $result;
}

?>