fork(3) 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. case "=":
  41. echo "Финальный результат = " . $result;
  42. }
  43. }elseif (is_numeric($char)){
  44. $number=($number*10)+$char;
  45. }else{
  46. echo "Неверный символ: '$char'\n";
  47. }
  48. }
Success #stdin #stdout 0.01s 52488KB
stdin
Standard input is empty
stdout
Выполняем действие 243+6743=6986 
Выполняем действие 6986-78=6908 
Выполняем действие 6908*2=13816