Code:
function Foo($Value)
{
if ($LocalValue = $Value * 10) && ($LocalValue > 100)
return $LocalValue - 1;
else
return $LocalValue + 1;
}
Mir ist generell unverständlich, warum man noch die Zuweisung per IF-Abfrage regeln muss, da da eh 100%ig TRUE rauskommt. Dann macht man den Vergleich auf größer 100 und nachdem man beide Teilergebnisse hat, nimmt man noch das boolesche UND. Nur weil etwas geht, muss man das nicht unbedingt machen.
Dieses Konstrukt würde ich mir gar nicht erst angewöhnen, da die Fehleranfälligkeit stark steigt, da der Vergleich mit 2x "=" stattfindet. Immer wenn ich mit Vergleichen ein Problem habe (PHP), liegt es daran, dass einfach ein "=" zu wenig vorhanden ist.
Bernhard
Hi Bernhard,
1. Das war nur ein Beispiel, um zu verdeutlichen, dass man in einigen Sprachen direkt in der Bedingung eine Zuweisung durchführen kann, was bei Delphi mit Bordmitteln (meiner Meinung nach) nicht geht
2.
($LocalValue = $Value * 10) wird in PHP nicht 100%ig zu TRUE gewandelt, sondern nur wenn das Ergebnis von
$LocalValue nach Zuweisung <> 0 ist. Siehe
PHP-Dokumentation. Wenn man also an die fiktive Funktion 0 übergibt (0*10=0), so wird die zweite Bedingung erst gar nicht ausgewertet.
3. Mir ging es dabei um andere Aspekte
mfg
Waldemar