PHP OOP - Toegangswysigers
PHP - Toegangswysigers
Eienskappe en metodes kan toegangswysigers hê wat beheer waar toegang tot hulle verkry kan word.
Daar is drie toegangswysigers:
-
public
- die eiendom of metode kan van oral af verkry word. Dit is verstek -
protected
- die eiendom of metode kan binne die klas en deur klasse afgelei van daardie klas verkry word -
private
- die eiendom of metode kan SLEGS binne die klas verkry word
In die volgende voorbeeld het ons drie verskillende toegangswysigers by drie eienskappe (naam, kleur en gewig) gevoeg. Hier, as jy probeer om die naam-eienskap te stel, sal dit goed werk (omdat die naam-eienskap publiek is en van oral af toeganklik is). As jy egter probeer om die kleur- of gewigeienskap te stel, sal dit 'n noodlottige fout tot gevolg hê (omdat die kleur- en gewigeienskap beskerm en privaat is):
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 die volgende voorbeeld het ons toegangswysigers by twee funksies gevoeg. Hier, as jy probeer om die set_color() of die set_weight() funksie te noem, sal dit 'n noodlottige fout tot gevolg hê (omdat die twee funksies as beskerm en privaat beskou word), selfs al is al die eienskappe publiek:
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
?>