fork(1) 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. if($op==''){
  14. $op=$char;
  15. $result=$number;
  16. $number=0;
  17. }
  18. elseif ($op == "+") {
  19. echo "Выполняем действие " . $result . "+" . $number;
  20. $result = (intval($result)) + (intval($number));
  21. echo "={$result} \n";
  22. $op=$char;
  23. $number = 0;
  24. } elseif ($op == "-") {
  25. echo "Выполняем действие " . $result . "-" . $number;
  26. $result = (intval($result)) - (intval($number));
  27. echo "={$result} \n";
  28. $op=$char;
  29. $number = 0;
  30. } elseif ($op == "*") {
  31. echo "Выполняем действие " . $result . "*" . $number;
  32. $result = (intval($result)) * (intval($number));
  33. echo "={$result} \n";
  34. $op=$char;
  35. $number = 0;
  36. } elseif ($char=="=") {
  37. echo "Финальный результат = " . $result;
  38. } else {
  39. echo "Что-то пошло не так.";
  40. }
  41.  
  42. }elseif (is_numeric($char)){
  43. /// echo "Поступило число : {$char}. \n";
  44. $number=($number*10)+$char;
  45. }else{
  46. echo "Неверный символ: '$char'\n";
  47. }
  48. }
Success #stdin #stdout 0s 52488KB
stdin
Standard input is empty
stdout
Выполняем действие 243+6743=6986 
Выполняем действие 6986-78=6908 
Выполняем действие 6908*2=13816