PHP-Registrierungsmuster

8

Ich habe den Code unten an mehreren Stellen im Web und sogar hier auf Stack Overflow gefunden, aber ich kann mich einfach nicht damit herumschlagen. Ich weiß, was es tut, aber ich weiß nicht, wie es auch mit den Beispielen geht. Im Grunde speichert es Werte, aber ich weiß nicht, wie ich der Registrierung Werte hinzufüge. Kann jemand bitte versuchen, zu erklären, wie dieser Code funktioniert, sowohl wie ich Werte davon setze und abrufe?

%Vor%     
Ian Hoar 16.11.2011, 05:38
quelle

2 Antworten

7

Es wird verwendet, dass PHP auf überladener Eigenschaften gehackt wird, um hinzuzufügen Einträge zu und aus dem privaten $vars -Array abrufen.

Um eine Eigenschaft hinzuzufügen, würden Sie ...

verwenden %Vor%

Intern würde dies einen foo Schlüssel zum $vars Array mit dem String Wert "foo" über die magische __set Methode hinzufügen.

Um einen Wert abzurufen ...

%Vor%

Intern würde dies den foo -Eintrag vom Array $vars über die Methode magic __get abrufen.

Die Methode __get sollte wirklich nach nicht existierenden Einträgen suchen und solche Dinge behandeln. Der Code as-is löst einen E_NOTICE -Fehler für einen nicht definierten Index aus.

Eine bessere Version könnte

sein %Vor%     
Phil 16.11.2011, 05:49
quelle
8

Vielleicht möchten Sie PHP.NET - Overloading ausprobieren

Grundsätzlich würden Sie tun ...

%Vor%

Hier verwende ich __set($a, 'This value is not visible to the scope or nonexistent') Außerdem verwende ich __get($a);

Hoffe das hat geholfen!

    
Manuel Fernández 16.11.2011 05:51
quelle

Tags und Links