usort() und “could not be converted to string”.

gepostet am 04.12.2013 um 17:12 Uhr

Ich wurde von einem Nutzer drauf hingewiesen, dass mein Code in dem Tutorial nicht richtig funktioniert wenn man Objekte nach einem Feld der Klasse DateTime sortieren will.

Der Fehler sagte aus:

Catchable fatal error: Object of class DateTime could not be converted to string in 

Die Lösung ist schnell erklärt: Die Funktion usort versucht die DateTime zu einem String zu konvertieren um sie zu sortieren. Allerdings hat die Klasse DateTime keine Standardimplementierung zur ver-string-ung. Das lässt sich aber ganz einfach lösen.

Man muss sich nur eine eigene Klasse erstellen die die DateTime Klasse erbt. Dort implementiert man dann die Funktion __toString():

Das Objekt das nun sortiert werden muss, darf nun in der Deklaration des Feldes nicht mehr die normale DateTime Klasse enthalten, sondern die myDateTime.

Schon funktioniert die Sortierung. Diese Lösung kann bei allen Objekten angewendet werden, die sich nicht sortieren lassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.