PHP-“Bug” seit 5.2.2

Mit dem Upgrade auf Lenny wurde auch PHP statt in Version 5.2.0 jetzt auf Version 5.2.6 aktualisiert.

Wäre eigentlich kein Problem, wenn nicht – trotz minor Version-Upgrade – die PHP-Entwickler ein relativ zentrales Verhalten geändert hätten.

Bisher war es möglich, Objekte über serialize() in der Datenbank “schlafen” zu legen, und später über unserialize() wieder “aufzuwecken”:

$this = unserialize($data);

Mit PHP 5.2.2 wurde dieser Code komplett zerstört, da auf $this nun nur noch Read-Only zugegriffen werden kann, Schreib-Zugriffe auf das Objekt selbst sind nicht mehr möglich.

Sichtbar wird diese Änderung durch Fehlermeldungen wie:

Cannot re-assign $this in …

Abhilfe? Keine, das Verhalten ist laut PHP-Bugreport erwünscht:

Actually this is expected behavior. We explicitly decided to have $this
being readonly because of interna problems with the new engine.

Post navigation


Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>