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.