PHP Handbuch | ||
---|---|---|
Zurück | Anhang C. Migration von PHP/FI 2.0 zu PHP 3.0 | Nach vorne |
PHP/FI 2.0 benutzte die linke Seite von Ausdrücken, um herauszufinden, wie das Ergebnis aussehen soll. PHP 3.0 zieht beide Seiten in Betracht um den Ergebnistypen zu bestimmen. Dies kann bei 2.0 Scripts dazu führen, sich in 3.0 unerwartet zu verhalten.
Betrachten Sie dieses Beispiel:
In PHP/FI 2.0 würde dies beide Kennziffern von $a anzeigen. In PHP 3.0 würde gar nichts angezeigt werden. Der Grund ist, daß in PHP 2.0, aufgrund des "linken" Arguments des Strings, ein Vergleich des Strings gemacht wurde, "" ist in der Tat nicht das selbe wie "0", was dazu führt, das die Schleife durchläuft. Wenn man in PHP 3.0 einen String mit einem Integer vergleicht, so wird ein Vergleich zweier Interger vorgenommen (der String wir in einen Integer umgewandelt). Dies führt dazu, daß atoi(""), was 0 ist, und variablelist, was genauso 0 ist, vergleichen werden. Und weil 0==0, würde die Schleife nicht ein einziges Mal durchlaufen.Dies zu reparieren ist einfach. Ersetzen Sie das While-Statement mit:
Zurück | Zum Anfang | Nach vorne |
while Syntax | Nach oben | Änderung der Fehlermeldungen |