7.9 Schreib- oder lesegeschützte Eigenschaften implementieren

Problem

Sie wollen eine Objekt-Eigenschaft haben, die sich nur auslesen, aber nicht setzen lässt. Das könnte z.B. eine Eigenschaft sein, bei der nur das Auslesen sinnvoll ist. Oder Sie wollen eine Eigenschaft implementieren, die man nur setzen kann.

Lösung

Verwenden Sie _ _set() und _ _get(), aber implementieren Sie die Eigenschaft nur in einer der beiden Methoden:

<?php

    class adder {
        private $current_sum = 0;

        public function _ _set($name, $value) {
            switch ($name) {
                case "amount": // Lesegeschützte Eigenschaft – nicht in _ _get()
                               // implementiert.
$this->current_sum += $value; break; default: throw new Exception("adder hat keine schreibbare Eigenschaft namens $name", 1); } } public function ...

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.