Hendrik: Funktion: Wenn Anweisung 1, 2 ODER 3, dann...

Ja, die Überschrift sagt eigentlich schon alles!
Gibt es bei PHP Funktionen, die den Wert true zurückgeben, wenn eine der
Anweisungen eintritt?
Ich hab das eigentlich so probiert, aber es hat nicht geklappt:

if(
$bla==$bla1_ok && $blu==$blu1_ok ||
$bla==$bla2_ok && $blu==$blu2_ok ||
$bla==$bla3_ok && $blu==$blu3_ok);
(weiterleitung???)(datei.php);

Ich dachte, dass "||" "oder" bedeutet und ich es somit hinbekomme...
Also das oben sollte dann sowas sein wie:
wenn(
$bla gleich ist wie $bla1_ok und $blu gleich ist wie $blu1_ok oder...
wenn $bla gleich ist wie $bla2_ok und $blu gleich ist wie $blu2_ok oder...
usw.
Leider funktionierte das nicht, deshalb suche ich hier euren Rat!
Bitte helft mir! Hendrik

  1. Hallo timo,

    versuch deinen Ausdruck

    if(
    $bla==$bla1_ok && $blu==$blu1_ok ||
    $bla==$bla2_ok && $blu==$blu2_ok ||
    $bla==$bla3_ok && $blu==$blu3_ok);
    (weiterleitung???)(datei.php);

    mal mit Klammern zu strukturieren

      
    if(  
     ($bla==$bla1_ok && $blu==$blu1_ok)  
     ||  
     ($bla==$bla2_ok && $blu==$blu2_ok)  
     ||  
     ($bla==$bla3_ok && $blu==$blu3_ok)  
    )  
    {  
     //do s.ht.  
    }  
    else  
    {  
     //do s.ht. else  
    }  
    
    

    MfG
    Timo

    1. versuch deinen Ausdruck
      mal mit Klammern zu strukturieren

      Timo,
      Da der &&-Operator stärker bindet als der ||-Operator (Operator-Rangfolge), sind keine Klammern notwendig.

      Live long and prosper,
      Gunnar

      --
      „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
      1. Hallo Gunnar,

        Da der &&-Operator stärker bindet als der ||-Operator (Operator-Rangfolge), sind keine Klammern notwendig.

        auch wenn Du den Fehler sicher lokalisiert hast, halte ich das Setzen von zusätzlichen (redundanten) Klammern ebenfalls für sinnvoll. Weder einen Parser noch einen Optimierer werden diese Klammern stören, dafür ist die Lesbarkeit für Leute wie mich (und wahrscheinlich Timo) wesentlich besser. Henriks Erklärung habe ich mangels Klammern überhaupt nicht verstanden.

        Freundliche Grüße

        Vinzenz

        1. […] sind keine Klammern notwendig.

          die Lesbarkeit [ist mit Klammern] für Leute wie mich (und wahrscheinlich Timo) wesentlich besser.

          Vinzenz, ACK.
          Ich hatte mich mal wieder recht kurz gefasst.

          „keine Klammern notwendig“ sollte heißen: der Fehler liegt woanders; nicht: keine Klammern sinnvoll.

          Live long and prosper,
          Gunnar

          --
          „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
      2. Hallo Gunnar,

        Da der &&-Operator stärker bindet als der ||-Operator
        (Operator-Rangfolge), sind keine Klammern notwendig.

        Richtig, allerdings vereinfacht es ungemein die Lesbarkeit.
        In diesem Falle hat es zB dazu geführt, dass ich das falsche
        Semikolon missachtet habe.

        Live long and prosper,

        For sure ;)

        Timo

  2. Hendrik,

    if(
    $bla==$bla1_ok && $blu==$blu1_ok ||
    $bla==$bla2_ok && $blu==$blu2_ok ||
    $bla==$bla3_ok && $blu==$blu3_ok);

    ^
    Du schließt die if-Anweisung ohne eine Anweisung, die bei Zutreffen der Bedingung ausgeführt werden soll.

    Live long and prosper,
    Gunnar

    --
    „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
  3. Hallo Hendrik,

    Gibt es bei PHP Funktionen, die den Wert true zurückgeben, wenn eine der
    Anweisungen eintritt?

    ja, solche sollte es geben.

    if(
    $bla==$bla1_ok && $blu==$blu1_ok ||
    $bla==$bla2_ok && $blu==$blu2_ok ||
    $bla==$bla3_ok && $blu==$blu3_ok);
    (weiterleitung???)(datei.php);

    Leider funktionierte das nicht, deshalb suche ich hier euren Rat!

    "Funktioniert nicht" ist immer noch keine Fehlerbeschreibung (wo hab' ich das geklaut?), aber Du könntest es mit dem Setzen von Klammern versuchen.

    Freundliche Grüße

    Vinzenz