<?php
  echo "Entrez une expression arithmétique : " ;
  // initialisation des variables
  $nb=0      ;
  $chiffre=0 ;
  $somme=0   ;
  $signe='+' ;
  // ATTENTION de bien noter "\n" avec les guillemets
  // pour evaluer le caractère LF (Line Feed).
  // En cas de notation '\t' il n'y aurait pas d'évaluation,
  // la boucle devient infinie car le caractère lu ne sera jamais
  // égal au texte \n
  do
  {
    $caract=fgetc(STDIN) ;
    switch($caract)
    {
      // le cas du caractère LF est géré dans le switch
      case '+' : case '-' : case "\n" : // atention au "\n"
            if ($signe == '+') $somme = $somme+$nb ;
            else               $somme = $somme-$nb ;
            $nb=0            ;
            $signe = $caract ;
            break;
      case '0':case '1':case '2':case '3':case '4':
      case '5':case '6':case '7':case '8':case '9':
            $chiffre = ord($caract)-48  ;
            $nb      = ($nb*10)+$chiffre;
            break;
    }
  }
  while ($caract != "\n") ;
  
 echo "Résultat = ",$somme,PHP_EOL; 
?>
