<?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 '\n' il n'y aurait pas d'évaluation,
  // la boucle devient infinie car le caractère lu ne sera jamais
  // égal au texte \n
  while (($caract=fgetc(STDIN)) != "\n")
  { 
    $num = ord($caract)-48  ; // calcul pour le switch
    switch(true)
    {      
      case ($caract=='+') || ($caract=='-') :
            if ($signe == '+') $somme = $somme+$nb ;
            else               $somme = $somme-$nb ;
            $nb=0            ;
            $signe = $caract ;
            break;
      case in_array($num, range(0,9)):            
            $chiffre = $num             ;
            $nb      = ($nb*10)+$chiffre;
            break;
    }
  }
 if ($signe == '+')  $somme = $somme+$nb ;
 else                $somme = $somme-$nb ;
  
 echo "Résultat = ",$somme,PHP_EOL; 
?>
