Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
php:sichtbarkeit [2015/03/19 12:24] webproducer angelegt |
php:sichtbarkeit [2021/03/26 12:18] (aktuell) webproducer Fehler in der Beschreibung behoben |
||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
Die Sichtbarkeit einer Eigenschaft oder Methode kann definiert werden, indem man der Deklaration eines der Schlüsselwörter public, protected oder private. voranstellt. Auf public deklarierte Elemente kann von überall her zugegriffen werden. Protected beschränkt den Zugang auf Elternklassen und abgeleitete Klassen (sowie die Klasse, die das Element definiert). Private grenzt die Sichtbarkeit einzig auf die Klasse ein, die das Element definiert. | Die Sichtbarkeit einer Eigenschaft oder Methode kann definiert werden, indem man der Deklaration eines der Schlüsselwörter public, protected oder private. voranstellt. Auf public deklarierte Elemente kann von überall her zugegriffen werden. Protected beschränkt den Zugang auf Elternklassen und abgeleitete Klassen (sowie die Klasse, die das Element definiert). Private grenzt die Sichtbarkeit einzig auf die Klasse ein, die das Element definiert. | ||
+ | |||
+ | ^Sichtbarkeit^Zugriff aus eigener Klasse^Zugriff aus abgeleiteter Klasse^Zugriff außerhalb der Klasse^ | ||
+ | | private | ja | nein | nein | | ||
+ | | protected | ja | ja | nein | | ||
+ | | public | ja | ja | ja | | ||
//Beispiel:// | //Beispiel:// | ||
- | <code> | + | <code php> |
class test | class test | ||
{ | { | ||
- | public $pub; // kann ausgelesen und geändert werden | + | public $pub; // kann gelesen und geändert werden |
- | private $priv; // kann weder ausgelesen noch verändert werden | + | private $priv; // kann weder gelesen noch verändert werden |
- | protected $pro; // kann weder ausgelesen noch verändert werden | + | protected $pro; // kann weder gelesen noch verändert werden |
public function __construct( $a, $b, $c ) | public function __construct( $a, $b, $c ) | ||
{ | { | ||
- | $this->pub = $a; | + | $this->pub = $a; |
- | $this->priv = $b; | + | $this->priv = $b; |
- | $this->pro = $c; | + | $this->pro = $c; |
} | } | ||
} | } | ||
Zeile 22: | Zeile 27: | ||
foreach( $obj as $key=>$val ) | foreach( $obj as $key=>$val ) | ||
- | echo "<p>$key: $val</p>"; // es wird ausschließlich "pub: A" ausgegeben. | + | { |
+ | echo "<p>$key: $val</p>"; // es wird ausschließlich "pub: A" ausgegeben. | ||
+ | } | ||
- | $obj->pub = 1; // funktioniert fehlerfrei | + | $obj->pub = 1; // funktioniert fehlerfrei |
- | $obj->priv = 2; // Fatal error: Cannot access private property test::$priv | + | $obj->priv = 2; // Fatal error: Cannot access private property test::$priv |
- | $obj->pro = 3; // Fatal error: Cannot access protected property test::$pro | + | $obj->pro = 3; // Fatal error: Cannot access protected property test::$pro |
</code> | </code> | ||