IF Anweisungen zusammenfügen
Homer
- php
Hallo alle,
wie schon mehrfach erwähnt bin ich ein PHP Noob.
kann mann solche IF Anweisungen
if (isset($_GET['foo']))
{
$script=getenv(SCRIPT_NAME);
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store');
header('Pragma: no-cache');
header("Location: $script");
}
if (isset($_GET['bar']))
{
$script=getenv(SCRIPT_NAME);
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store');
header('Pragma: no-cache');
header("Location: $script");
}
so zusammenführen um code zu sparen
if ((isset $_GET['foo)]) || (isset $_GET['bar)])
{
$script=getenv(SCRIPT_NAME);
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store');
header('Pragma: no-cache');
header("Location: $script");
}
Ist das richtig so, ist das korrekter Code oder völliger Blödsinn?
Danke
Homer
PS:Do'h!
Naja, wenn du daraus
if ((isset $_GET['foo)]) || (isset $_GET['bar)])
das machst
if( isset($_GET['foo']) || isset($_GET['bar']) ) { ... }
dann stimmt es und macht das was du möchtest. Einfach mal etwas besser auf deine Klammern etc achten.
Danke für Eure schnelle Hilfe!
Gruß
Homer
PS:Do'H!
hallo,
wie schon mehrfach erwähnt bin ich ein PHP Noob.
Wenn du so ein Noob bist, dann schlage ich vor, dass PHP Manual durchzuarbeiten.
[...]
so zusammenführen um code zu sparenif ((isset $_GET['foo)]) || (isset $_GET['bar)])
{
$script=getenv(SCRIPT_NAME);
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store');
header('Pragma: no-cache');
header("Location: $script");
}
Starte das Script. Merke dann, dass PHP meckert, weil in der Abfrage ein paar Klammern falsch gesetzt sind. Korrigiere es. Starte erneut und merke, es funktioniert!
Probieren geht über Studieren.
|| ist ein logischer Operator, wie in zum Beispiel Javascript auch. Du kannst stattdessen auch OR schreiben, die Wirkung bleibt.
grüße,
henman
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!