Sichtbarkeit
Aus php bar
(Weitergeleitet von protected)
Seit PHP 5 kann man mit bestimmten Schlüsselwörtern die Sichtbarkeit und das Verhalten von Methoden und Eigenschaften einer Klasse bestimmen.
Inhaltsverzeichnis |
public
Öffentlich, aus allen Code-Teilen heraus sichtbar.
1 class MeineKlasse 2 { 3 public $a = 'öffentlich'; 4 public static $b = 'öffentlich, statisch'; 5 } 6 7 echo MeineKlasse::$b; 8 9 $mein_objekt = new MeineKlasse; 10 echo $mein_objekt->a;
protected
Der Zugriff auf geschützte Eigenschaften und Methoden ist nur innerhalb der selben Klasse oder in abgeleiteten Klassen möglich.
1 class Klasse 2 { 3 protected $a = 'geschützt'; 4 protected static $b = 'geschützt, statisch'; 5 } 6 7 class Ableitung extends Klasse { 8 public function druckeA() { 9 echo $this -> a; 10 } 11 12 public static function druckeB() { 13 echo self::$b; 14 } 15 } 16 17 Ableitung::druckeB(); 18 19 $objekt = new Ableitung(); 20 $objekt -> druckeA(); 21 22 // Ein direkter Zugriff auf die Eigenschaften verursacht einen Fehler 23 echo $object -> a; 24 echo Klasse::$b;
private
Privat, wird nicht vererbt, ist also nicht in abgeleiteten Klassen verfügbar.
1 class MeineKlasse 2 { 3 private $eigenschaft = 'öffentlich'; 4 } 5 6 class MeineErweiterteKlasse extends MeineKlasse 7 { 8 } 9 10 echo MeineKlasse::$eigenschaft; 11 // FEHLER: 12 echo MeineErweiterteKlasse::$eigenschaft;
final
Fertig, darf nicht in abgeleiteten Klassen überschrieben werden.
1 class MeineKlasse 2 { 3 final function methode() 4 { 5 echo __METHOD__ . ' aufgerufen'; 6 } 7 } 8 9 class MeineErweiterteKlasse extends MeineKlasse 10 { 11 // FEHLER: 12 public function methode() 13 { 14 echo 'überschriebene ' . __METHOD__ . ' aufgerufen'; 15 } 16 }
abstract
Entwurf, muss in abgeleiteten Klassen überschrieben werden. Ebenso muss eine Klasse mit einer mit abstract markierten Methode selbst auch abstract sein.
1 abstract class MeineKlasse 2 { 3 abstract public function methode() {}; 4 } 5 6 class MeineErweiterteKlasse extends MeineKlasse 7 { 8 public function methode() 9 { 10 echo 'überschriebene ' . __METHOD__ . ' aufgerufen'; 11 } 12 }
Kategorien: OOP | PHP 5 | Schlüsselwort

