Anfänger: if ($variable) ... wie mit mehreren Werten?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Anfänger: if ($variable) ... wie mit mehreren Werten?

    Hallo,

    ich verwende if ($variable) um nach Eingabe etwas in HTML darzustellen ... wie geht das, wenn ich möchte, daß die Darstellung durchgeführt wird, wenn entweder variable1, variable2 oder variable3 einen Inhalt besitzen?


  • #2
    Ich weiß nicht ob du dies meinst:

    Code:
    if ($variable == "Wert_1"){ echo $Ausgabe; }
    elseif ($variable == "Wert_2"){ echo $Ausgabe; }
    elseif ($variable == "Wert_3"){ echo $Ausgabe; }
    else { echo $Ausgabe2; }
    oder

    Code:
    if ($variable == "Wert_1"){ funktion(); }
    elseif ($variable == "Wert_2"){ funktion(); }
    elseif ($variable == "Wert_3"){ funktion(); }
    else { echo $Ausgabe2; }
    
    function funktion(){
    echo "Ausgabe";
    echo $Ausgabe";
    }
    Ob es einfacher geht weiß ich nicht.

    Kaffi
    Errare humanum est

    W32.Schmalle.H@mm

    Kommentar


    • #3
      Hi Kaffi,

      danke für Deine Antwort - ich meinte jedoch:

      if ($variable1) oder ($variable2) oder ($variable3)
      -> Ausgabe
      }

      Also nur, ob in variable1 oder variable2 oder variable3 überhaupt was drin steht!

      Wie geht das?

      Kommentar


      • #4
        Auszug aus dem PHP Handbuch, verfügbar auf der Homepage von php-resource.de (grins)

        if ($i == 0) {
        print "i ist gleich 0";
        }
        if ($i == 1) {
        print "i ist gleich 1";
        }
        if ($i == 2) {
        print "i ist gleich 2";
        }

        switch ($i) {
        case 0:
        print "i ist gleich 0";
        break;
        case 1:
        print "i ist gleich 1";
        break;
        case 2:
        print "i ist gleich 2";
        break;
        }





        Es ist wichtig, die Ausführung einer switch-Anweisung zu verstehen, um Fehler zu vermeiden. Die switch-Anweisung wird Zeile für Zeile (also Anweisung für Anweisung) abgearbeitet. Zu Beginn wird nichts ausgeführt. Erst wenn bei einem case-Teil eine Entsprechung zum switch-Ausdruck vorliegt, werden die darin enthaltenen Befehle ausgeführt. PHP fährt dann mit der Abarbeitung des restlichen Codes innerhalb des switch-Blocks fort (oder bis zum ersten Auftreten einer break-Anweisung). Ohne break am Ende eines case-Teils werden also noch die folgenden case-Blöcke ausgeführt. Z.B.:


        switch ($i) {
        case 0:
        print "i ist gleich 0";
        case 1:
        print "i ist gleich 1";
        case 2:
        print "i ist gleich 2";
        }





        Wenn hier $i gleich 0 ist, würde PHP alle print-Anweisungen ausführen. Ist $i gleich 1, würden die letzten beiden print-Befehle ausgeführt und wenn $i = 2 ist, würde nur der letzte print-Befehl ausgeführt. Deshalb ist es wichtig, bei der ersten gefundenen Übereinstimmung eine break-Anweisung zu setzen (abgesehen von bestimmten Fällen, wo genau dieses Verhalten gefordert wird).

        Bei einer switch-Anweisung wird die Bedingung also nur einmal überprüft und das Ergebnis mit jeder case-Anweisung verglichen. Bei einem elseif-Befehl wird die Bedingung neu geprüft. Eine switch-Anweisung kann schneller als mehrere if-Befehle sein, z.B. bei komplizierteren Bedingungen als einem einfachen Vergleich.

        Der Anweisungsteil von case kann auch leer sein. Dann wird die Kontrolle einfach an den nächsten case-Teil übergeben.


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





        Ein Spezialfall ist die Anweisung default. Diese trifft auf alles zu, was nicht von den voranstehenden case-Ausdrücken erfasst wurde, wie z.B.:


        switch ($i) {
        case 0:
        print "i ist gleich 0";
        break;
        case 1:
        print "i ist gleich 1";
        break;
        case 2:
        print "i ist gleich 2";
        break;
        default:
        print "i ist weder 0, 1 noch 2";
        }





        Der case-Ausdruck kann eine Prüfung einfacher Typen sein, also von Integer- oder Fließkomma-Zahlen oder von Strings / Zeichenketten. Arrays oder Objekte können nicht benutzt werden, es sei denn, sie werden auf einfache Typen herunter gebrochen.

        Die alternative Syntax gilt auch für switch-Sequenzen. Mehr Informationen dazu unter Alternative Syntax für Kontroll-Strukturen .


        switch ($i):
        case 0:
        print "i ist gleich 0";
        break;
        case 1:
        print "i ist gleich 1";
        break;
        case 2:
        print "i ist gleich 2";
        break;
        default:
        print "i ist weder 0, 1 noch 2";
        endswitch;

        Kommentar


        • #5
          <?php
          $var="";
          $var1=1;
          $var2=0;
          if($var or $var1 or $var2) echo "Ausgabe";
          else
          echo "keine Ausgabe";
          ?>
          Gruß

          Kommentar

          Lädt...
          X