mmofacts.com

Unbekannte Probleme mit der magischen "__get()" Methode

gepostet vor 17 Jahre, 2 Monate von DrakeL
Ich Benutzer die magische "__get()" Methode auf ein Singleton Objekt:
print PrimarySystemcore::getInstance()->Homepage;

und bekomme dann folgende Meldung:
Notice: Undefined property: PrimarySystemcore::$Homepage in ...

Greife ich auf das selbe Element via "__get()" drauf Funktioniert es:
print PrimarySystemcore::getInstance()->__get('Homepage');

Kann es irgendein erklärbaren Grund geben, warum die Funktion nicht gehen kann?
Ich nutze die magischen Methoden sehr oft und hatte bisher noch nie Probleme damit gehabt. Auch alle anderen Variablen innerhalb des Singleton funktionieren, nur diese Variable geht nicht. Habs auch schon probiert indem ich die Variable ändere (hieß vorher "Page"), aber auch dies hatte keiner Verbesserung gebracht.
gepostet vor 17 Jahre, 2 Monate von TheUndeadable
Klappt:
$oX = PrimarySystemcore::getInstance();
print $oX->Homepage;
??
Hatte in PHP schon öfter damit Probleme, dass er Dinge direkt nach Funktionen nicht auflösen kann.
gepostet vor 17 Jahre, 2 Monate von DrakeL
$systemcore = PrimarySystemcore::getInstance();
print $systemcore->Homepage;

Klappt ebenfalls nicht...
Die einzige Besonderheit im Gegensatz der anderen Objekte ist, dass das Objekt innerhalb von sich selbst aufgerufen wird, aber nachdem eine Instanz von diesem im PrimarySystemcore hinterlegt wurde (nach dem Zuweisen in der "initialize()" Methode).
Ganz grob als Beispiel:

//Innerhalb des PrimarySystemcore
$this->data['Homepage'] = new HomepageSystemcore();
$this->data['Homepage']->inizialize();
//Innerhalb der initialize Funktion des HomepageSystemcore
print PrimarySystemcore::getInstance()->Homepage;
//__get() Methode des PrimarySystemcore
public function __get($systemcore)
{
return $this->data[$systemcore];
}
PS: Ich wüsste aber nicht, was das mit dem Ausfläsen zu tun hat, von daher bin ich sehr ratlos...

Auf diese Diskussion antworten