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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


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

      Comment


      • #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

        Comment


        • #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

          Comment

          Working...
          X