dedlfix: Eindimensionales Array zu Mehrdimensionalem Objekt konvertieren

Beitrag lesen

Hi!

Also bringen soll es mir ein Objekt das die URL-Angabe repräsentiert.
Wenn ich als URL habe:
http://irgendwas.de/MeinBlog/2010/12/3

Wollte ich die in ein Objekt:
$MeinBlog->2010->12->3 = true;
abstrahieren.

Das sieht mir gar nicht sinnvoll aus. Du hast Pfadteile einer URL, und das sind allgemein gesagt Daten. Und aus diesen Daten willst du Code generieren. Sowas geht nur mit solchen Laufzeit-Sprachen. Bei Sprachen mit Kompilierung ist der Code und somit Namen von Variablen, Klassen, Funktionen und so weiter (ohne Reflection) gar nicht mehr vorhanden. Dort würde dein Vorhaben ganz scheitern.

Aber abgesehen davon kannst du auf solch ein Objekt, wie es dir anstrebt, im Gegensatz zu deiner Ausgangssstruktur, beispielsweise kein implode('/', $url_array) anwenden, um daraus wieder den Pfad-Teil der URL zu bekommen. Du müsstest umständlich rekursiv durch dein geschachteltes Objekt wandern.

Mit diesem Vorhaben, denke ich, handelst du dir mehr Probleme ein, als es was bringt.

Ich wollte hier mit einem Objekt arbeiten weil ich mal gehört habe das es wohl ein guter Stil sei eben mit Objekten als mit allem anderen zu arbeiten. Eben nach dem Motto: Soviel abstrahieren wie es nur geht.

Ob OOP oder nicht, ist keine Frage des Stils. Abstrahieren ist ja nicht prinzipell verkehrt, aber Daten zu Code zu wandeln hat damit nichts zu tun. Außerdem sollte alles mit Bedacht geschehen. Auch das, was anderenorts bester Stil ist, muss das nicht überall sein.

PHP mache ich nur Hobbymässig, und das meiste davon eigne ich mir selber an. Von gutem Programmierstil weiß ich da leider nicht viel, sry :-(

Dafür musst du dich nicht entschuldigen. Nichtwissen sehe ich nicht als Makel an, auch nicht, wenn man sich deswegen solche komischen Lösungen auszudenken versucht. Wichtig ist nur, dass du aus deinen Fehlern zu lernen bereit bist.

Hast du eventuell einen Tipp wie man das besser lösen / gestalten könnte?

Lass es beim Array, wenn du den Pfad überhaupt aufdröseln musst. Wenn die Einzelteile zum Beispiel nur ein einziges Mal benötigt werden, würde ich nur an dieser Stelle mit dem explode()-Egebnis arbeiten und ansonsten den String bestehen lassen.

Lo!