Dynamische Variable in ganzer Klasse zugänglich machen

  • Hallo.

    Ich stehe vor folgendem Problem:

    Ich will, dass durch do() nun "Inhalt" ausgespuckt wird... Das geht aber nicht. Wenn ich das die( $this->blabla ); allerdings in die function a verschiebe, wird es korrekt ausgegeben. Ich frage mich nun wie ich eine dynamische Variable, die in einer function erstellt wird allen Methoden der Klasse zugänglich machen kann.

    Hab es schon mit static $this->$var = $var2; probiert, das erzeugt aber einen Fehler 500.

    Hat jemand eine Lösung dafür ?

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • nutze ein properties-array und __set, was du da geschrieben hast sieht irgendwie ... seltsam aus und wiederspricht dem Prinzip der Datenkapselung.

    Dein Problem ist aber ein anderes. Du vergisst, dass $a und $b zwei verschiedene Instanzen sind.
    Du kannst nicht in $b etwas schreiben und dann erwarten, dass $a darüber bescheid weiss ;)
    Dass wäre ja fatal, wenn das gehen würde, dann könnte man ja auch wieder global benutzen.
    Wenn du also $b->b(); machst, musst du zur Ausgabe auch $b->do() aufrufen


  • Haha, lustigerweise hab ichs im Endeffekt genauso gemacht wie du gesagt hast, bin auch erst jetzt draufgekommen, dass ja das Object aus A allein wegen extends gar nicht bescheid wissen kann, wenn B etwas ändert. Es erbt ja nur die selben Funktionen aber die Variablenwerte.

    Danke

    PHP
    if(isset($this) || !isset($this)){ // that's the question...