Sobes.tech
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();