Einzelnen Beitrag anzeigen

WladiD

Registriert seit: 27. Jan 2006
Ort: Celle
141 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Funktion, die beliebigen Typ zuweist und als Bool auswertet

  Alt 2. Mär 2011, 15:55
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
Waldemar Derr
  Mit Zitat antworten Zitat