Hallo Joachim,
$a = 42.02; $b = 146.18; $c = 188.20; if($a + $b > $c) { echo("a+b ist größer als c <br>a: ".$a." <br>b: ".$b." <br>c: ".$c); } else { echo "<br>equal"; } $a = settype($a, 'float'); $b = settype($b, 'float'); $c = settype($c,'float'); if($a + $b > $c) { echo("a+b ist größer als c <br>a: ".$a." <br>b: ".$b." <br>c: ".$c); } else { echo "<br>equal"; }
Er ergibt:
a+b ist größer als c a: 42.02 b: 146.18 c: 188.20 equal
da wird sowohl der if- als auch der else-Zweig bearbeitet??
Das kann völlig unabhängig von der Bedingung eigentlich nicht sein; da muss noch ein anderer Fehler drinstecken. Irgendein überzähliges Semikolon oder falsch gesetzte Klammern - etwas in der Art.
Gemein wäre etwa sowas:
if (false);
{ echo "false ist doch true!";
}
Beachte das Semikolon hinter der if-Klammer: Es schließt die if-Anweisung ohne Anweisungsblock ab, der nachfolgende Block in geschweiften Klammern gehört dann nicht mehr zur if-Anweisung. Solche Fehler sind schwer zu finden, weil sie eben keine Syntaxfehler sind.
Ist schon irre. 😀
Vielleicht ist die Erklärung ganz simpel.
Live long and pros healthy,
Martin
--
Home is where my beer is.
Home is where my beer is.