PHP OOP - Toegangsmodificaties
PHP - Toegangsmodificaties
Eigenschappen en methoden kunnen toegangsmodifiers hebben die bepalen waar ze toegankelijk zijn.
Er zijn drie toegangsmodificaties:
-
public
- de woning of werkwijze is overal toegankelijk. Dit is standaard -
protected
- de eigenschap of methode is toegankelijk binnen de klasse en door klassen die van die klasse zijn afgeleid -
private
- de eigenschap of methode is ALLEEN toegankelijk binnen de klasse
In het volgende voorbeeld hebben we drie verschillende toegangsmodifiers toegevoegd aan drie eigenschappen (naam, kleur en gewicht). Als je hier de eigenschap name probeert in te stellen, werkt het prima (omdat de eigenschap name openbaar is en overal toegankelijk is). Als u echter probeert de kleur- of gewichtseigenschap in te stellen, resulteert dit in een fatale fout (omdat de kleur- en gewichtseigenschap beschermd en privé zijn):
Voorbeeld
<?php
class Fruit {
public
$name;
protected $color;
private $weight;
}
$mango = new Fruit();
$mango->name = 'Mango'; // OK
$mango->color = 'Yellow'; // ERROR
$mango->weight = '300'; // ERROR
?>
In het volgende voorbeeld hebben we toegangsmodifiers toegevoegd aan twee functies. Als u hier de functie set_color() of set_weight() probeert aan te roepen, resulteert dit in een fatale fout (omdat de twee functies als beschermd en privé worden beschouwd), zelfs als alle eigenschappen openbaar zijn:
Voorbeeld
<?php
class Fruit {
public
$name;
public $color;
public $weight;
function set_name($n) {
// a public function (default)
$this->name = $n;
}
protected function set_color($n) {
// a protected function
$this->color = $n;
}
private function set_weight($n) {
// a private function
$this->weight = $n;
}
}
$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Yellow'); // ERROR
$mango->set_weight('300'); // ERROR
?>