SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=240&group=44
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Zugriffsbeschränkung (Datenkapselung)


Eigenschaften und Methoden von Klassen lassen sich mit den Schlüsselwörtern private und protected vor unerlaubtem Zugriff schützen. Damit ist es möglich, die Sichtbarkeit von Eigenschaften und Methoden einzuschränken. Zugriff auf als private deklarierte Eigenschaften und Methoden besteht nur innerhalb der Klasse selbst, Eigenschaften oder Methoden, die als protected deklariert wurden, stehen dagegen zusätzlich auch in abgeleiteten Klassen zur Verfügung. Das Schlüsselwort public schränkt den Zugriff in keiner Weise ein und entspricht dem Klassenmodell in PHP 4. Mit public, private oder protected kann in PHP 5 der Zugriff auf Eigenschaften, Methoden und Klassen genau festgelegt und eine gute Kapselung erreicht werden.

Zusammengefasst kann man sagen: Es handelt sich bei public, private oder protected um Schlüsselwörter, die sich zum Verstecken und Kapseln von Daten innerhalb von Klassen eignen und mit deren Hilfe man in der Lage ist, die Daten nur noch den in der Klasse definierten Methoden zugänglich zu machen und somit den unbefugten Zugriff von außen strikt zu unterbinden.


Einsatzmöglichkeiten und Funktionsweise

Mit der Datenkapselung wird die Trennung von Nutzungs- und Implementierungsschicht, von Realisierung und Nutzung verfolgt: Ein Entwickler, der eine Klasse eines anderen Entwicklers nutzen möchte, braucht die internen Abläufe der Klasse nicht zu kennen, er verwendet nur die vereinbarte Schnittstelle.

Zu diesem Zweck werden den Eigenschaften und Methoden einer Klasse bei ihrer Deklaration eine von drei möglichen Sichtbarkeiten zugewiesen:

Hinweis: public stellt im Grunde nichts anderes dar als ein Alias von var, welches in PHP 4 eingesetzt wird, um Klassenattribute festzulegen. Die Deklaration von Eigenschaften mit var wird weiterhin unterstützt, sollte aber in PHP 5 nicht verwendet werden, es sei denn, die Skripts sollen PHP 4-kompatibel sein.