Junior
PHP-də görünürlük modifikatorları nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Görünürlük modifikatorları (public, protected, private) bir sinfin xüsusiyyətlərinə və metodlarına giriş səviyyəsini müəyyən edir.
public- hər yerdən əlçatandır (sinif daxilində, irsi sinflərdə, xaricdən).protected- sinif daxilində və ondan irsi sinflərdə əlçatandır.private- yalnız elan olunduğu sinif daxilində əlçatandır.
Nümunə:
<?php
class MyClass {
public $publicProperty = 'public';
protected $protectedProperty = 'protected';
private $privateProperty = 'private';
public function publicMethod() {
echo "İctimai metodun girişi: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
protected function protectedMethod() {
echo "Qorunan metodun girişi: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
private function privateMethod() {
echo "Xüsusi metodun girişi: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
}
}
class MyChildClass extends MyClass {
public function testAccess() {
echo "Uşaq sinifində giriş: " . $this->publicProperty . ", " . $this->protectedProperty . "\n"; // public və protected-ə giriş
// echo $this->privateProperty; // Xəta, private əlçatan deyil
$this->publicMethod();
$this->protectedMethod();
// $this->privateMethod(); // Xəta, private əlçatan deyil
}
}
$obj = new MyClass();
echo $obj->publicProperty . "\n"; // Mövcuddur
// echo $obj->protectedProperty; // Xəta, protected xaricdən əlçatan deyil
// echo $obj->privateProperty; // Xəta, private xaricdən əlçatan deyil
$obj->publicMethod();
// $obj->protectedMethod(); // Xəta, protected xaricdən əlçatan deyil
// $obj->privateMethod(); // Xəta, private xaricdən əlçatan deyil
$childObj = new MyChildClass();
$childObj->testAccess();