Junior
Wat zijn zichtbaarheid modificatoren in PHP?
sobes.tech AI
Antwoord van AI
Toegankelijkheidsmodifiers (public, protected, private) bepalen het toegangsniveau tot de eigenschappen en methoden van een klasse.
public- toegankelijk vanaf elke plek (binnen de klasse, in afgeleide klassen, van buitenaf).protected- toegankelijk binnen de klasse en in de afgeleide klassen.private- alleen toegankelijk binnen de klasse waarin het is gedeclareerd.
Voorbeeld:
<?php
class MyClass {
public $publicProperty = 'public';
protected $protectedProperty = 'protected';
private $privateProperty = 'private';
public function publicMethod() {
echo "Toegang tot publieke methode: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
protected function protectedMethod() {
echo "Toegang tot beschermde methode: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
private function privateMethod() {
echo "Toegang tot private methode: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
}
class MyChildClass extends MyClass {
public function testAccess() {
echo "Toegang in kindklasse: " . $this->publicProperty . ", " . $this->protectedProperty . "\n"; // Toegang tot public en protected
// echo $this->privateProperty; // Fout, private niet toegankelijk
$this->publicMethod();
$this->protectedMethod();
// $this->privateMethod(); // Fout, private niet toegankelijk
}
}
$obj = new MyClass();
echo $obj->publicProperty . "\n"; // Beschikbaar
// echo $obj->protectedProperty; // Fout, protected niet toegankelijk van buiten
// echo $obj->privateProperty; // Fout, private niet toegankelijk van buiten
$obj->publicMethod();
// $obj->protectedMethod(); // Fout, protected niet toegankelijk van buiten
// $obj->privateMethod(); // Fout, private niet toegankelijk van buiten
$childObj = new MyChildClass();
$childObj->testAccess();