Bir özelliğin ya da bir yöntemin (PHP 7.1.0 ve sonrası) görünürlüğü, bildirim sırasında önüne şu anahtar sözcüklerden biri getirilerek belirlenebilir. Önceki yazımızı tıklayarak okuyabilirsiniz.

public : Genel. Her yerden erişilebilir.

private : Özel. Yalnızca sınıf içerisinden erişilebilir.

protected : Korumalı. Sınıf içerisinden ve türetilen sınıflardan erişilebilir.

static : Sabit. Sınıf içerisindeki herhangi bir özellik veya metoda sınıf çağırılmadan da erişilebilir.

$this : Bu sınıfta şeklinde sınıfı işaret etmek için kullanılır.

self : Kendi sınıfında şeklinde sınıfı işaret etmek için kullanılır.

parent:: : Ebeveyn sınıfında şeklinde sınıfı işaret etmek için kullanılır.

Örnek :

<?php
    class Bir{
      public $isim = "Uğur";
      public const soyisim = "Kabak";

      public function Bilgi(){
          $metin = "A'dan Z'ye PHP Eğitim Seti";
          return $metin;
      }
    }

    $nesne = new Bir;
    echo "İsim Soyisim : " . $nesne->isim . " " . Bir::soyisim . "<br> " . $nesne->Bilgi();
?>

Örnek : Özellik standart iste $this, sabit ise self kullanılır

<?php
  class Bir{
      public $isim = "Uğur ";
      public const soyisim = "Kabak ";

      public function Bilgi(){
          $metin = "İsim Soyisim : " . $this->isim . self::soyisim . " " . "<br>A'dan Z'ye PHP Eğitim Seti";
          return $metin;
      }
    }

    $nesne = new Bir;
    echo $nesne->Bilgi();
?>

Örnek : Private değerleri public fonksiyonda çağırdığımız için dışarıya çıkarabiliriz.

<?php
  class Bir{
      private $isim = "Uğur ";
      private const soyisim = "Kabak ";

      public function Bilgi(){
          $metin = "İsim Soyisim : " . $this->isim . self::soyisim . " " . "<br>A'dan Z'ye PHP Eğitim Seti";
          return $metin;
      }
    }

    $nesne = new Bir;
    echo $nesne->Bilgi();
?>

Örnek : Protected değerleri public fonksiyonda çağırdığımız için dışarıya çıkarabiliriz.

<?php
  class Bir{
      protected $isim = "Uğur ";
      protected const soyisim = "Kabak ";

      public function Bilgi(){
          $metin = "İsim Soyisim : " . $this->isim . self::soyisim . " " . "<br>A'dan Z'ye PHP Eğitim Seti";
          return $metin;
      }
    }

    $nesne = new Bir;
    echo $nesne->Bilgi();
?>

Örnek: Iki isimli sınıf Bir sınıfndan türediği için oradaki değerlere ulaşabiliyor.

<?php
      class Bir{
        private $isim = "Uğur";
        private const soyisim = "Kabak";

      }

      class Iki extends Bir{
        public function Bilgi(){
        $metin = "İsim Soyisim : " . $this->isim . self::soyisim . " " . "<br>A'dan Z'ye PHP Eğitim Seti";
        return $metin;
        }
      }

      $nesne = new Iki;
      echo $nesne->Bilgi();

?>

Örnek : Iki isimli sınıf Bir sınıfndan türediği için, oradaki değerlere protected olduğu için ulaşabiliyor.

<?php
  class Bir{
        protected $isim = "Uğur";
        protected const soyisim = "Kabak";

      }

      class Iki extends Bir{
        public function Bilgi(){
        $metin = "İsim Soyisim : " . $this->isim . self::soyisim . " " . "<br>A'dan Z'ye PHP Eğitim Seti";
        return $metin;
        }
      }

      $nesne = new Iki;
      echo $nesne->Bilgi();
?>

Örnek : this olduğu için sadece 2.sınıfı alır ve sonsuz döngüye girer ve bu da hatalı olur.

<?php
  class Bir{
        public function Bilgi(){
          $metin = "PHP";
          return $metin;
        }
      }

      class Iki extends Bir{
        public function Bilgi(){
        $metin = "JS";
        echo $metin;
        return $this->Bilgi();
        }
      }

      $nesne = new Iki;
      echo $nesne->Bilgi();
?>

Örnek : parent olduğu için 2 sınıfı da alır ve sorunsuz çalışır.

<?php
class Bir{
        public function Bilgi(){
          $metin = "PHP";
          return $metin;
        }
      }

      class Iki extends Bir{
        public function Bilgi(){
        $metin = "JS ";
        echo $metin;
        return parent::Bilgi();
        }
      }

      $nesne = new Iki;
      echo $nesne->Bilgi();
?>

Örnek : static kullanımı

<?php
class islem{
          public static $isim = "Codernsoft";
        }
        echo islem::$isim;
?>

Örnek : Sabitlerde static çalışmaz

<?php
  class islem{
          public static const isim = "Uğur";
        }
        echo islem::isim;
?>

Örnek : metodlarda static çalışır

<?php
  class islem{
      public static function Bilgiver(){
        echo "Codern Soft";
      }
    }
    echo islem::Bilgiver();
?>