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 O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.