War es hilfreich?

Lösung

Das würde sie öffentlich wirksam machen, und dies in der Regel gewinnt man nichts über nur öffentliche Eigenschaften mit (aber Sie Leistung Strafe zahlen und muß mehr Code, Risiko Bugs schreiben).

Verwenden Sie das nur, wenn Sie vorhandenen Code, die öffentliches Eigentum verwendet, und Sie plötzlich Getter / Setter müssen für sie (wie Ihr Beispiel mit age).

Wenn Sie einen Code auszuführen, wenn Eigenschaft gelesen / geschrieben (zum Beispiel macht ablesbare nur oder träge aus der Datenbank holen), dann sollten Sie normale Getter / Setter (getAge() / setAge()) verwenden.

Andere Tipps

Ich mache umfangreichen Gebrauch von __get() und __set() und ich habe meine Eigenschaften public erklärt. Ich wollte das Beste aus beiden Welten, so mein IDE öffentliche Eigenschaften für mich Liste könnte, wenn ich den Namen einer Klasseninstanz geben. Wie bin ich die PHP-Interceptor Methoden zu arbeiten, auch wenn die Eigenschaften sind öffentlich und sichtbar außerhalb der Klasse?

unset () die Eigenschaften I will __get() und __set() auf für in der Klasse __construct() verwendet werden

Herauszufinden dieses Verfahren ein paar Abende der Frustration nahm: -).

Ich sehe nicht viele Leute mit ihnen, aber hier ist, was ich denke.

private Variablen für das Abrufen, möchten Sie wahrscheinlich eine Liste der definierten Variablen geben, die in der Lage sind, von außen zugegriffen werden kann. Dann überprüfen, um zu sehen, ob die angeforderte Variable in diesem Array ist. Wenn ja, lassen Sie es geändert / geholt werden. Wenn nicht, entweder Fehler oder null zurück.

Ehrlich gesagt, sind die Implementierungen für diese wirklich von Fall zu Fall. Wenn Sie eine Benutzerklasse haben, die Sie alle Informationen in einem einzigen Array gespeichert werden, kann vom Benutzer $ haben könnte> Namen von $ user-> Konto [ ‚name‘], oder so ähnlich gezogen werden.

Auch in einem von Fall zu Fall, Sie könnten einige Änderungen machen, bevor ihnen Werte zu geben, wie ein Kennwort-Hashing.

scroll top