7.8 Eigenschaften mit _ _set() und _ _get() überladen

Problem

Sie wollen beim Setzen oder Lesen einer Eigenschaft automatisch eine zusätzliche Aktion ausführen. Zum Beispiel wollen Sie einen Eingabewert überprüfen oder den Wert der Eigenschaft in eine andere Einheit umrechnen. Vielleicht müssen Sie auch beim Setzen der Eigenschaft automatisch eine Änderung in der Datenbank vornehmen. Oder Sie möchten den Wert einer Eigenschaft erst beim Lesen aus anderen Informationen berechnen.

Lösung

Leiten Sie die Eigenschaften über die Overloading-Methoden _ _set() und _ _get() um:

class currency {
        public $exchange_rate;
        private $amount; // Zentraler, währungsunabhängiger Speicherplatz des Betrags

        public function _ _set($name, $value) {
            switch ($name) {
case "usd": ...

Get PHP 5 Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.