James: Variablen gleichen Inhalts bei Abfrage zusammenfassen

Hallöle,

ich frage sieben Variablen nach ihrem Wert:

if ($variable1 == "wert" && $variable2 == "wert" && ...)

Die Anweisung soll initialisiert werden, wenn alle sieben Variablen den gleichen Wert haben.
Wie kann ich nun die Abfrage zusammenfassen?

Eetwa nach diesem Muster:

if (($variable1 && $variable2 && ...) == "wert")

Oder ist das schon die Lösung?

Danke und Grtüesslie,

James.

  1. if ($variable1 == "wert" && $variable2 == "wert"
    if (($variable1 && $variable2 && ...) == "wert")

    Du hast die Lösung zweimal gegeben...
    Da gibts nicht mehr viel zu sagen.

    1. Dankeschön!

    2. Moin!

      if ($variable1 == "wert" && $variable2 == "wert"
      if (($variable1 && $variable2 && ...) == "wert")

      Du hast die Lösung zweimal gegeben...
      Da gibts nicht mehr viel zu sagen.

      Außer dass Lösung 2 nicht funktioniert. Weil es einen Unterschied macht, ob ich
      ($variable1 && $variable2) == "wert" vergleiche, oder ($variable1 == "wert") && ($variable2 == "wert").

      Im ersten Fall wird der Inhalt der beiden Variablen logisch UND-verknüpft und ergibt einen Wahrheitswert (WAHR oder FALSCH). Dieser wird dann mit dem Wert "wert" verglichen. Wenn "wert" nicht auch irgendwie WAHR oder FALSCH ist, kommt mit Sicherheit Murks raus.

      Im Zweiten Fall wird jede Variable mit dem Wert "wert" verglichen. Das Wahrheitsergebnis wird dann UND-verknüpft. Das Resultat ist nur dann WAHR, wenn alle Variablen mit dem Wert "wert" identisch sind.

      Eine Verkürzung der Prüfung läßt sich nur erreichen, wenn man eine Schleife bauen kann, die nacheinander jede einzelne Variable mit dem Wert vergleicht und das Resultat speichert. Dazu ist am besten, wenn die Variablen alle in einem Array verfügbar sind, weil man dann am einfachsten eine Schleife anwenden kann. Außerdem ist empfehlenswert, dass dann noch ein Kurzschluß-Ausgang eingebaut wird: Sobald eine Variable nicht mit "wert" identisch ist, kann man abbrechen, weil das Resultat damit feststeht: Nicht alle Variablen sind mit "wert" identisch. Wenn man eine lange &&-Reihe schreibt, bricht PHP die Prüfungen selbst ab, sobald das Ergebnis feststeht, und spart damit Rechenzeit.

      - Sven Rautenberg

      --
      Diese Signatur gilt nur am Freitag.
      1. Ups, das stimmt wohl. Hatte in einem kleinen Test das
        ganze mit Variablen gemacht und 'wert' stand in $wert...
        Und $wert hatte ich =true definiert.