Mailinglisten-Archive |
Hi, :-) Am Mittwoch, 28. Juni 2006 12:15 schrieb Alexander Wagner: > Um deiner echo-Komma-Theorie den Todesstoss zu geben: das war keine Theorie, sondern eine funktionierende Lösung, entsprungen aus einigen falschen Überlegungen, aber trotzdem absolut korrekt. :-) echo $i."+".$j."=", $i+$j; führt zu dem gewünschten Ausgabeergebnis. ;-) > echo "8"."+"."4"."="."2"+1; > gibt "9" aus und nicht "3". > Und > $x = "8"."+"."4"."="."2"+1; > echo $x; > hat dasselbe ergebnis, es handelt sich hier also um keine Spezialität > von echo, sondern um eine folge der ganz normalen > Ausdrucks-Auswertung in PHP. > > Das liegt daran, dass zuerst der String "8+4=2" zusammengebaut und > dann zwecks Addition aus diesem String die 8 rausgefischt wird, also > echo ("8"."+"."4"."="."2")+1; > ==> echo "8+4=2"+1; > ==> echo 9 Ok, ich fasse noch einmal zusammen. 1. Reinhold und Du hattet recht. :-) 2. Ich hatte mit meiner Erklärung des Phänomens nicht recht, weil ich bei dem automatischen Type-casting verloren gegangen bin und dann falsche Überlegungen angestellt und mein Heil in einer - auch funktionierenden - echo-Lösung gesucht habe. ;-) 3. Auch wenn ich die Argumentation nachvollziehen kann, warum es hier nicht zu einem Syntaxfehler - korrekter wäre wohl: Typfehler - kommen muß und kann, bleibe ich bei der Auffassung, daß eine stärkere Typenstrenge hier schon sinnvoll wäre. Diese ganzen Automatismen sind ja u.a. auch dafür da, daß es dem Programmierer, insbesondere auch Anfängern, einfacher gemacht werden soll. Herauskommen aber wie hier Ergebnisse, die dann ein besonders tiefes Wissen in bestimmten Punkten erfordern, um verstanden zu werden. Obwohl mir sowohl die Mechanismen der Typenkonvertierung als auch der Operatorenreihenfolge bekannt sind, bin ich nicht auf die Idee gekommen, daß die in diesem Gewuseln in dem echo-Befehl dann so zusammenwirken. Ich bin für den Typenstrenge-Knopf in PHP. ;-) Bis dahin sage ich zunächst einmal herzlichen Dank, daß Ihr mich auch dahin gebracht habt, daß zu verstehen, was Ihr von Anfang an gesagt habt. :-D Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive