Junior
Ce sunt modificatorii de vizibilitate în PHP?
sobes.tech AI
Răspuns de la AI
Modificatorii de vizibilitate (public, protected, private) determină nivelul de acces la proprietățile și metodele unei clase.
public- accesibil de oriunde (în interiorul clasei, în clasele moștenitoare, din exterior).protected- accesibil în interiorul clasei și în clasele moștenitoare.private- accesibil doar în interiorul clasei în care este declarat.
Exemplu:
<?php
class MyClass {
public $publicProperty = 'public';
protected $protectedProperty = 'protected';
private $privateProperty = 'private';
public function publicMethod() {
echo "Acces la metodă publică: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
protected function protectedMethod() {
echo "Acces la metodă protejată: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
private function privateMethod() {
echo "Acces la metodă privată: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
}
class MyChildClass extends MyClass {
public function testAccess() {
echo "Acces în clasa fiică: " . $this->publicProperty . ", " . $this->protectedProperty . "\n"; // Acces la public și protected
// echo $this->privateProperty; // Eroare, private inaccesibil
$this->publicMethod();
$this->protectedMethod();
// $this->privateMethod(); // Eroare, private inaccesibil
}
}
$obj = new MyClass();
echo $obj->publicProperty . "\n"; // Disponibil
// echo $obj->protectedProperty; // Eroare, protected inaccesibil din exterior
// echo $obj->privateProperty; // Eroare, private inaccesibil din exterior
$obj->publicMethod();
// $obj->protectedMethod(); // Eroare, protected inaccesibil din exterior
// $obj->privateMethod(); // Eroare, private inaccesibil din exterior
$childObj = new MyChildClass();
$childObj->testAccess();