0

php 5.2.4 while pointer bug

Geschrieben von Sven Jansen am 11.10.2007 in entwickeltes

Ich rate jedem Admin tunlichst die Finger von PHP Version 5.2.4 zu lassen.

Hier hat sich scheinbar ein ganz mieser Bug eingeschlichen. Bei while Schleifen wird der Pointer nicht mehr weiter geschoben. Das führt dazu, dass z.B. bei einem Array zwar für die Anzahl der Elemente im Array die while Schleife durchlaufen wird, aber der Key bleibt immer der vom ersten Element.
Wer diese Version auf seinem Server bereits drauf hat und sich über seltsames Verhalten diverser Applikationen wundert, dem kann ich nur raten zu versuchen eine ältere Version zu installieren. Die Alternative dazu wäre nur, alle while Schleifen durch for Schleifen zu ersetzen. Die funktionieren nämlich noch.

Seltsam ist, dass ich keinerlei Infos zu diesem Bug per Google Suche und auch nicht im Bugtracker finden kann. Angeblich soll der Bug dort aber bereits notiert und im CVS auch behoben sein. Ich hoffe deshalb, die schieben da ganz flink einen Hotfix nach.

Nachtrag:
Das Problem besteht bei diesem Konstrukt (welches sowieso ziemlich unschön ist):

while(list($key,$val) = each($array)) {

}

Leider kommt dieses Konstrukt in ziemlich vielen älteren PHP Applikationen vor, so dass man nach einem PHP Update seitens des Hosters blöd aus der Wäsche guckt.
Ebenfalls betroffen ist der OXID Shop in Version 2 und 3.

Bookmark speichern:

  • Seite bei Mr. Wong bookmarken
  • Seite bei YIGG bookmarken
  • Seite bei YAHOO bookmarken
  • Seite bei Google bookmarken
  • Seite bei Feedmelinks bookmarken

Schreibe einen Kommentar

Name *
E-Mail *
(wird nicht veröffentlicht)
Website
Anti-Spam *
Was ergibt eins plus neun? (als Zahl)
 
Kommentar *