Andreas Görtz: $_POST[foo] manipulieren/abfragen; implicit typecast

Beitrag lesen

Hi seth,

$_POST['Wert']+=isset($_POST['Auf'])-isset($_POST['Ab']);

isset() liefert ein boolesches Ergebnis. Damit würde ich ohne Not und Typecast keine arithmetischen Berechnungen anstellen.

false-true==-1.

sogar === -1. Aber dass das in o.a. Code so gewollt ist, ist für Dritte, die den Quelltext zum ersten Mal zu sehen bekommen, schwer zu lesen IMHO.

da braucht man weder NOT noch einen expliziten typecast.

ich glaube, dedlfix meinte eher die Not. Wie auch immer - die Intention des Skriptes ist es doch, bei Vorhandensein eines "Auf"-Parameters
eine Addition durchzuführen und analog dazu eine Subtraktion bei Vorhandensein des Parameters "Ab". Diese Intention sollte auch so übersetzt werden:

Wenn Paramter "Auf" vorhanden
  addiere
Wenn Paramter "Ab" vorhanden
  subtrahiere

dein Code fuehrt immer eine Addition aus, auch wenn keiner der beiden Parameter vorhanden ist, wenn auch mit 0. Man sieht also nicht auf den ersten Blick: falls keiner der Parameter vorhanden, wird keine Addition ausgeführt. Stattdessen sieht man: da wird immer etwas auf den Parameter "Wert" aufaddiert.

Außerdem ist er schlechter erweiterbar: möglicherweise möchte man die Parameter "Auf" und "Ab" mal irgendwann dazu verwenden, die Werte zu übergeben, die auf den/vom Parameter "Wert" addiert/subtrahiert werden sollen. Dann musst du deinen Code doch verwerfen.

Den Missbrauch von Funktionsergebnissen, auch wenn es technisch funktioniert, finde ich keine gute Idee. Das macht das Verstehen des Quelltextes nicht einfacher.

ACK.

imho eine frage der gewoehnung.

auch ACK, trotz meiner generellen Ablehnung ;-)

Gruß,
Andreas.