fork download
  1. <?php
  2. $input='243+6743-78*2=';
  3. $inputLength = mb_strlen($input);
  4.  
  5. $result=0;
  6. $number=0;
  7. $op='';
  8.  
  9. for ($i=0; $i<$inputLength;$i++){
  10. $char = mb_substr($input, $i, 1);
  11.  
  12. if ($char == "*" || $char == "+" || $char == "-" || $char == "=") {
  13. switch($op) {
  14. case '':
  15. $op = $char;
  16. $result = $number;
  17. $number = 0;
  18. break;
  19. case '+':
  20. echo "Выполняем действие " . $result . "+" . $number;
  21. $result = (intval($result)) + (intval($number));
  22. echo "={$result} \n";
  23. $op = $char;
  24. $number = 0;
  25. break;
  26. case '-':
  27. echo "Выполняем действие " . $result . "-" . $number;
  28. $result = (intval($result)) - (intval($number));
  29. echo "={$result} \n";
  30. $op=$char;
  31. $number = 0;
  32. break;
  33. case '*':
  34. echo "Выполняем действие " . $result . "*" . $number;
  35. $result = (intval($result)) * (intval($number));
  36. echo "={$result} \n";
  37. $op=$char;
  38. $number = 0;
  39. break;
  40. }
  41.  
  42. if ($char == '=') {
  43. echo "Финальный результат = $result";
  44. break;
  45.  
  46. }
  47. }elseif (is_numeric($char)){
  48. $number=($number*10)+$char;
  49. }else{
  50. echo "Неверный символ: '$char'\n";
  51. }
  52. }
Success #stdin #stdout 0.01s 52488KB
stdin
Standard input is empty
stdout
Выполняем действие 243+6743=6986 
Выполняем действие 6986-78=6908 
Выполняем действие 6908*2=13816 
Финальный результат = 13816