dedlfix: IF Anweisungen zusammenfügen

Beitrag lesen

Hi!

kann mann solche IF Anweisungen
if (isset($_GET['foo']))
if (isset($_GET['bar']))
so zusammenführen um code zu sparen
if ((isset $_GET['foo)]) || (isset $_GET['bar)])

Abgesehen vom Syntaxfehler ... du kannst dir die Frage auch selbst beantworten, wenn du dir eine Wahrheitstabelle erstellst:

isset($_GET['foo'])  |  isset($_GET['bar'])  |  Ergebnis
------------------------------------------------------------
        false          |         false         |
        true           |         false         |
        false          |         true          |
        true           |         true          |

Jetzt rufst du dein Script ohne, mit foo, mit bar und mit beidem auf und schaust, was jeweils bei

vardump(isset($_GET['foo']));
  vardump(isset($_GET['bar']));
  vardump(isset($_GET['foo']) || isset($_GET['bar']));

als Ergebnis erscheint. (Vorher ein <pre> ausgeben erhöht die Übersichtlichkeit der Ausgabe.)

Allerdings hast du vermutlich schon einen Logik-Fehler im Ausgangscode. Schreib mal

var_dump(isset($_GET['foo']));
  var_dump(isset($_GET['bar']));

und wiederhole die vier Aufrufvarianten. Immer bei true würden deine Headerzeilen gesetzt. Du hast eine Konstellation, bei der die Headerzeilen zweimal gesetzt werden. Wenn du statt var_dump() man ein echo nimmst, siehst du das noch deutlicher, das gibt entweder nichts oder eine 1 aus. Wenn 11 dasteht, hast du eine doppelte Ausgabe, obwohl du sicher nur eine willst. Insofern ist nur die zusammengefasste Variante gegenüber den einzelnen richtig.

Lo!