- mb_strlen: documentation ( source)
- error_reporting: documentation ( source)
- preg_split: documentation ( source)
- mb_internal_encoding: documentation ( source)
<?php
error_reporting(-1);
mb_internal_encoding('utf-8');
$input = '78.95+874.1*3/11.3-88=';
$inputLength = mb_strlen($input);
$result = 0; //результат предыдущего действия
$numbersAndOperations = array();
$numbersAndOperations = preg_split('/(?=[-+*=\\/])|(?<=[-+*=\\/])/', $input);
$result = $numbersAndOperations[0];
for ($i = 1; $i < count($numbersAndOperations); $i+=2) {
if ($numbersAndOperations[$i] == '+'){
$result += intval($numbersAndOperations[$i+1]);
}elseif($numbersAndOperations[$i] == '-'){
$result -= intval($numbersAndOperations[$i+1]);
}elseif($numbersAndOperations[$i] == '*'){
$result *= intval($numbersAndOperations[$i+1]);
}elseif($numbersAndOperations[$i] == '/') {
$result /= intval($numbersAndOperations[$i+1]);
}else {
echo "Ответ: $input$result";
}
}