Wieso geht $this->$irgendwas = "foo" nicht?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wieso geht $this->$irgendwas = "foo" nicht?

    Hallo.
    Wie löst man dieses Problem?!

    Ich hab zb $this->data = array();

    Jetzt möchte ich irgend woanders wieder auf data zugreifen und es auslesen oder füllen. Allerdings soll "data" eben nicht im Quellcode sein sondern in einer Variable.
    Allerdings geht das hier dann nicht:

    $var = "data";
    print_r($this->$var);

    Ich weiss nicht wonach ich da googlen soll oder wie das Problem heisst.
    Kann mir jemand helfen?

  • #2
    PHP-Code:
    print_r($this->${$var}); 
    Stichwort variable Variablen.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Super. Genau das hab ich gesucht. Herzlichen Dank.

      Kommentar


      • #4
        Super???

        Variable Variablen sind böse!

        In der PHP OOP gibts andere Mittel und Wege. Z.B. wäre es sauberer wenn dein $this Objekt das ArrayAccess Interface implementieren würde...

        PHP-Code:
        // Dann könnte es evtl. so aussehen:
        $this->data = array();
        $var "data";
        print_r($this[$var]); 
        Wir werden alle sterben

        Kommentar


        • #5
          Du könntest optional auch mal nach magischen Methoden googln. __get und __set sind deine Freund. So funktioniert übrigens auch das mysql_fetch_object-Objekt. Ganuso gibt es auch noch __call. Musst dir das ein wenig anschauen. Man kann damit schon ganz schmutzige Sachen erledigen ;-) !

          - Philipp
          Find Parties?
          Partysuche

          Kommentar

          Lädt...
          X