Guardando un po' di discussioni precedenti e la http://php.net/manual/en/control-structures.switch.php]guida ufficiale di php sullo switch[/URL] mi è parso di capire che nei case si possono inserire anche delle condizioni, oltre che un numero o una stringa.

Codice PHP:
   //  confronto restituisce 0 se i 2 numeri sono uguali
   //  1 se $numero1 è > di $numero2
   // -1 se $numero1 è < di $numero2

   
$differenza $this->confronto($numero1,$numero2);

   switch(
$differenza){
       case (
$differenza 0):
           ...
       break;

       case (
$differenza 0):
           ...
       break;

       default:
           ...
       break;
   } 
Qualcuno sa spiegarmi perché questo codice funziona tranne quando $differenza vale 0?
Mi consigliate di lasciar stare questo sistema e fare il controllo con gli if?