Dynamischer Objektaufruf

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

  • h3ll
    antwortet
    Was bezweckst du mit dem return im Konstruktor?

    Einen Kommentar schreiben:


  • MrBlupp
    antwortet
    Weißt du, dass du mir mein Weihnachten gerettet hast?
    Danke dir! Allein wär ich da in 5 WOchen nicht drauf gekommen, denn das man an der Stelle die geschweiften Klammern setzen kann, ist mir regelrecht neu oO

    Thx und ein schönes Fest!

    Einen Kommentar schreiben:


  • combie
    antwortet
    PHP-Code:
    print_r($replacesArray[$a]->{$b}[$c]); // Tuts perfekt 

    Einen Kommentar schreiben:


  • MrBlupp
    antwortet
    Ja h3ll...
    Das dies anscheinend so ist, versteh ich selbst. Ich verstehe nur nicht wieso. Der Direktaufruf funktioniert, aber sobald ich die Parameter in Variabeln packe, dann klappt es nicht mehr.

    @combie
    Sorry für die "Bahnhofslektüre" meinerseits. Das ganze sollte eigentlich ein Fun Templatesystem werden (Hatte Langeweile und wollte mal etwas für mich neues machen, mittlerweile find ich die Problemlösung jedoch weitaus interessanter als alles andere ^^).

    Hier der gewünschte Beispielcode (Selbes Schema, aber stark verkürzt und mit demselben Problem :P)

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    class 
    BeispielClass {
        public function 
    __construct() {
            
    $this->bla = array('foo2' => "Objekt Nummer 1"'foo3' => "Objekt Nummer 2");
            return 
    $this->bla;
        }
    }

    $replacesArray = array('test1' => "Blupp"'test2' => new BeispielClass());
    $a 'test2';
    $b 'bla';
    $c 'foo2';
    print_r($replacesArray[$a]->$b[$c]); // Liefert den Fehler
    print_r($replacesArray['test2']->bla['foo2']); // Liefert das gewünschte Ergebnis zurück
    ?>

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    Zitat von MrBlupp Beitrag anzeigen
    Wenn ich es mit deinem Vorschlag versuche, erhalte ich ebenfalls die Meldung "Notice: Undefined property: BeispielClass::$b". oO
    Es ist mittlerweile zum verrückt werden
    Tja, dann gibts das Property $b offenbar nicht.

    Einen Kommentar schreiben:


  • combie
    antwortet
    Ich habe mir den Thread jetzt ein paar mal durchgelesen und laut und deutlich "Bahnhof" vernommen.

    Sage doch einerseits mal "wozu" das gut sein soll und liefere doch bitte testbaren Code. Ein mini Beispiel.

    Einen Kommentar schreiben:


  • MrBlupp
    antwortet
    Hallo h3ll!
    Auch dir Danke für deine Antwort!

    Wenn ich es mit deinem Vorschlag versuche, erhalte ich ebenfalls die Meldung "Notice: Undefined property: BeispielClass::$b". oO
    Es ist mittlerweile zum verrückt werden

    Frohes Fest wünscht,
    Mr. Blupp

    Einen Kommentar schreiben:


  • h3ll
    antwortet
    PHP-Code:
    $property 'bla';
    $key 'foo2';

    echo 
    $object->$property[$key]; 

    Einen Kommentar schreiben:


  • MrBlupp
    antwortet
    Hallo wahsaga!
    Das mache ich ja auch mit dem direkten Aufruf über [COLOR=#000000][/COLOR] $replacesArray['beispielklasse']->bla['foo2'] womit es funktioniert. Nur sobald ich bla['foo2'] über eine Variabel definiere, um es dynamisch aufzurufen, erscheint der Hinweis und ich komm nicht mehr an das Ergebnis heran.
    Ist mein Vorhabe so nicht möglich oder mache ich generell etwas falsch?

    Gruß
    Mr. Blupp

    Einen Kommentar schreiben:


  • wahsaga
    antwortet
    Zitat von MrBlupp Beitrag anzeigen
    Wieso liefert die dynamische Variante den Hinweis?
    Weil du versuchst, auf eine Eigenschaft zuzugreifen, deren Name bla['foo2'] lautet.

    Einen Kommentar schreiben:


  • MrBlupp
    hat ein Thema erstellt Dynamischer Objektaufruf.

    Dynamischer Objektaufruf

    Hallo liebe Community,
    mein Problem dreht sich um folgenden stark vereinfachten Code
    PHP-Code:
    print_r($replacesArray['beispielklasse']->bla['foo2']); // Liefert das gewünschte Ergebnis zurück

    $klassenName "beispielklasse";
    $objectOhneAnfang "bla['foo2']";
    print_r($replacesArray[$klassenName]->$objectOhneAnfang);  // Liefert : Notice:  Undefined property: BeispielClass::$bla['foo2'] 
    Wieso liefert die dynamische Variante den Hinweis? Nach meiner Logik nach, müsste dies funktionieren, insbesonders da
    PHP-Code:
    print_r($replacesArray['beispielklasse']->bla); 
    Mir das gesamte Array ausgibt. Für jegliche Hilfe wäre ich überaus Dankbar!

    Es grüßt
    Mr. Blupp
Lädt...
X