Kurzer Name, mal wieder: 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.

Naja, aber genau deswegen nehme ich doch eine Interpretersprache wie PHP, oder nicht? :-)

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.

Aber ich habe doch eine Variable:

$url = $_GET["side"];  
  
[code lang=php]$sides = explode("/",$url);
~~~[/code]  
  
Dann habe ich doch meinen URL-String und mein Array :-)  
implode() brauche ich dann doch nicht mehr, oder?  
  

> 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.  
>   

Naja, die Daten kann man doch aber gegenstänlich betrachten, bspw. Mein Blog hat ja Eigenschaften, und die sind ja via Objekt darstellbar.  
  
Ich bin jetzt ehrlich gesagt ein bisschen verwirrt was den Umgang mit Objekten angeht.  
  
Sonst bin ich immer so ran gegangen: Alles was gegenständlich behandelt werden kann, kann auch in ein Objekt. Und ein Objekt mache ich eben weil es guter Stil sein soll.  
  

> > 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.  

»»  
Bereit dazu bin ich ja, aber im Moment ist es echt schwer :-(  
Ich bin echt bissl verwirrt was den Umgang mit Objekten angeht.  

> > 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.  
>   
>   

Also soll ich diese Abstraktion lassen. Ne Webseite kann man ja auch abstrahieren, die hat ja auch logisch betrachtet Eigenschaften und Methoden.  
  
Also bspw.  
  
`$MeineWebseite->RufeSeiteAuf("Galerie/Anzeigen");`{:.language-php}  
  
widerspricht doch eigentlich nicht dem abstrahieren, oder?  
  
Es gibt ja auch überall in Büchern als Beispiel:  
  
~~~php
$MeinAuto = new $Car  
$MeinAuto->SetColor("Rot");

Im Prinzip mache ich ja nichts anderes mit meiner Webseite, oder?

Ich richte mich ja nach solchen Beispielen in Büchern, ist das denn verkehrt? :-(

Lo!