Junior
Šta su modifikatori vidljivosti u PHP?
sobes.tech АИ
Одговор од АИ
Modifikatori vidljivosti (public, protected, private) određuju nivo pristupa svojstvima i metodama klase.
public- dostupno od bilo gde (unutar klase, u naslednim klasama, spolja).protected- dostupno unutar klase i u naslednim klasama.private- dostupno samo unutar klase u kojoj je deklarisano.
Primer:
<?php
class MyClass {
public $publicProperty = 'public';
protected $protectedProperty = 'protected';
private $privateProperty = 'private';
public function publicMethod() {
echo "Pristup javnom metodu: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
protected function protectedMethod() {
echo "Pristup zaštićenom metodu: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
private function privateMethod() {
echo "Pristup privatnom metodu: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
}
class MyChildClass extends MyClass {
public function testAccess() {
echo "Pristup u naslednoj klasi: " . $this->publicProperty . ", " . $this->protectedProperty . "\n"; // pristup public i protected
// echo $this->privateProperty; // Greška, private nije dostupno
$this->publicMethod();
$this->protectedMethod();
// $this->privateMethod(); // Greška, private nije dostupno
}
}
$obj = new MyClass();
echo $obj->publicProperty . "\n"; // Dostupno
// echo $obj->protectedProperty; // Greška, protected nije dostupno spolja
// echo $obj->privateProperty; // Greška, private nije dostupno spolja
$obj->publicMethod();
// $obj->protectedMethod(); // Greška, protected nije dostupno spolja
// $obj->privateMethod(); // Greška, private nije dostupno spolja
$childObj = new MyChildClass();
$childObj->testAccess();