Roger: PHP Switch

Hallo an alle,

als ich letzthin wieder am PHP-Skripte schreiben war, fehlte mir mal wieder etwas, und ich habe nirgends im Internet oder in Büchern eine Antwort geschrieben, deshalb frage ich hier:

Gibt es eine Möglichkeit ein or in einen Case vom Switch zu bauen? Ich möchte gerne folgendes erreichen:

$x = 4;
switch ($x) {
 case 1 || 5:
  echo 'super!';
  break;

default:
  echo 'default';
}

In diesem Fall, bei $x = 4 sollte der default-case zuschlagen, tut er aber nicht, sondern er springt in den case 1 || 5.. ich habs auch mit OR schon versucht, klappt nicht. Hat jemand eine Idee wie ich das lösen könnte? Ich könnte so viele Zeilen Code sparen.

Danke für Eure Hilfe,
Roger

  1. und ich habe nirgends im Internet oder in Büchern eine Antwort geschrieben, deshalb frage ich hier:

    Sorry, sollte natürlich heissen ich habe nirgends eine Antwort gefunden.

  2. Hallo Roger.

    […] Gibt es eine Möglichkeit ein or in einen Case vom Switch zu bauen?
    […] ich habe nirgends im Internet oder in Büchern eine Antwort geschrieben, […]:

    Wie wäre es mit dem Handbuch? Dort finden wir folgendes Konstrukt:

    <?php  
    switch ($i) {  
    case 0:  
    case 1:  
    case 2:  
       echo "i ist kleiner als 3 aber nicht negativ";  
       break;  
    case 3:  
       echo "i ist gleich 3";  
    }  
    ?>
    

    Einen schönen Donnerstag noch.

    Gruß, Mathias

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. <?php

      switch ($i) {
      case 0:
      case 1:
      case 2:
         echo "i ist kleiner als 3 aber nicht negativ";
         break;
      case 3:
         echo "i ist gleich 3";
      }
      ?>

        
      Habe dasselbe auch gelesen, doch scheinbar nicht genau genug ;-).  
        
      Vielen Dank und ebenfalls einen schönen Donnerstag  
      Roger
      
  3. Hi,

    switch ($x) {
    case 1 || 5:

    Alternativ würde ich noch folgende Möglichkeit anmerken:

    switch (true) {
        case ($x > 4):
        case ($x == 4 || $x == 3):
    }

    Ist auch irgendwo im Handbuch versteckt ;)

    E7

    1. gudn tach!

      Alternativ würde ich noch folgende Möglichkeit anmerken:

      switch (true) {
          case ($x > 4):
          case ($x == 4 || $x == 3):
      }

      oder eben gleich

      if($x > 4){  
        //code1  
      }elseif($x == 4 || $x == 3){  
        //code2  
      }else{  
        //code3  
      }
      

      prost
      seth