Mailinglisten-Archive |
Christian Knorr wrote: > Hallo zusammen, Hallo Christian, du sagtest zwar, dass Problem sei gelöst, aber ich will dich hier mal vor zukünfitigen Problemen schützen ;-). > > [CODE] > if ( $_POST["cancel_to_product"] or $ProduktMenu == "1" ) { Dies funktioniert. Aber nicht aus dem Grund aus dem du denkst, dass es funktioniert (ansonsten hättest du das anders geschrieben). Das ganze wird vielleicht deutlich, wenn ich ein paar optionale Klammern setze, die deine Anweisung nicht (!) verändern: if (($_POST["cancel_to_product"] or $ProduktMenu) == "1" ) hättest du das gedacht? Ich schätze mal eher du dachtest, dass deine Anweisung equivalent mit dieser hier ist: if ( $_POST["cancel_to_product"] or ($ProduktMenu == "1")) Der Fehler fängt dann an dich ans debuggen zu bringen, wenn du auf einmal sowas hast: if ( $_POST["cancel_to_product"] or $ProduktMenu == "0" ) Denn in dem Fall würde die if-Bedingung zum Beispiel nie wahr werden, wenn ($_POST["cancel_to_product"] ==true) wahr ist. Bei php's ||-Zeichen ist das etwas anders: if ( $_POST["cancel_to_product"] || $ProduktMenu == "1" ) ist tatsächlich genau wie if ( $_POST["cancel_to_product"] or ($ProduktMenu == "1")) das liegt daran, da das || eine höhere Priorität hat, als das or und auch eine höhere Priorität als das ==. Wie bei Punkt vor Strich, wo zuerst die Multiplikation errechnet wird (z.B.: in 5+3*4) wird das || vor dem == errechnet. --> Entweder du machst dir bewusst, wie die Operatorreihenfolge in php aussieht, oder du setzt Klammern. Ansonsten entwickelt deine Anwendung mit der Zeit interessante neue "Features" :-D. > Danke schonmal, Chris..... Yannik
php::bar PHP Wiki - Listenarchive