Junior
Co jsou to modifikátory viditelnosti v PHP?
sobes.tech AI
Odpověď od AI
Modifikátory viditelnosti (public, protected, private) určují úroveň přístupu k vlastnostem a metodám třídy.
public- dostupné odkudkoli (uvnitř třídy, v děděných třídách, zvenčí).protected- dostupné uvnitř třídy a v děděných třídách.private- dostupné pouze uvnitř třídy, ve které jsou deklarovány.
Příklad:
<?php
class MyClass {
public $publicProperty = 'public';
protected $protectedProperty = 'protected';
private $privateProperty = 'private';
public function publicMethod() {
echo "Přístup k veřejné metodě: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
protected function protectedMethod() {
echo "Přístup k chráněné metodě: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
private function privateMethod() {
echo "Přístup k soukromé metodě: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
}
class MyChildClass extends MyClass {
public function testAccess() {
echo "Přístup v dědické třídě: " . $this->publicProperty . ", " . $this->protectedProperty . "\n"; // přístup k public a protected
// echo $this->privateProperty; // Chyba, private není přístupné
$this->publicMethod();
$this->protectedMethod();
// $this->privateMethod(); // Chyba, private není přístupné
}
}
$obj = new MyClass();
echo $obj->publicProperty . "\n"; // Dostupné
// echo $obj->protectedProperty; // Chyba, protected není přístupné zvenčí
// echo $obj->privateProperty; // Chyba, private není přístupné zvenčí
$obj->publicMethod();
// $obj->protectedMethod(); // Chyba, protected není přístupné zvenčí
// $obj->privateMethod(); // Chyba, private není přístupné zvenčí
$childObj = new MyChildClass();
$childObj->testAccess();