Sobes.tech
Junior

PHP'de görünürlük modifikasyonları nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Görünürlük belirteçleri (public, protected, private) bir sınıfın özelliklerine ve metodlarına erişim seviyesini belirler.

  • public - her yerden erişilebilir (sınıf içinde, kalıtılan sınıflarda, dışarıdan).
  • protected - sınıf içinde ve ondan türeyen sınıflarda erişilebilir.
  • private - sadece tanımlandığı sınıf içinde erişilebilir.

Örnek:

<?php

class MyClass {
    public $publicProperty = 'public';
    protected $protectedProperty = 'protected';
    private $privateProperty = 'private';

    public function publicMethod() {
        echo "Kamu metodu erişimi: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
    }

    protected function protectedMethod() {
        echo "Korunan metod erişimi: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
    }

    private function privateMethod() {
        echo "Özel metod erişimi: " . $this->publicProperty . ", " . $this->protectedProperty . ", " . $this->privateProperty . "\n";
    }
}

class MyChildClass extends MyClass {
    public function testAccess() {
        echo "Çocuk sınıf erişimi: " . $this->publicProperty . ", " . $this->protectedProperty . "\n"; // public ve protected erişimi
        // echo $this->privateProperty; // Hata, private erişilebilir değil
        $this->publicMethod();
        $this->protectedMethod();
        // $this->privateMethod(); // Hata, private erişilebilir değil
    }
}

$obj = new MyClass();
echo $obj->publicProperty . "\n"; // Erişilebilir
// echo $obj->protectedProperty; // Hata, protected erişilebilir değil
// echo $obj->privateProperty; // Hata, private erişilebilir değil
$obj->publicMethod();
// $obj->protectedMethod(); // Hata, protected erişilebilir değil
// $obj->privateMethod(); // Hata, private erişilebilir değil

$childObj = new MyChildClass();
$childObj->testAccess();