Konular

Classlarda Kullanılan Özel Kelimeler

Public, private, protected, extends, _construct

Classlarda Kullanılan Özel Kelimeler

 

Değişken veya Fonksiyon
Parametresi
Kendi Klasında Çağrılırsa Klas Dışında Çağrılırsa Başka Klassa Aktarılıp Class İçerisinde Çağrılırsa Başka Klassa Aktarılıp Class Dışında Çağrılırsa
Public Çalışır Çalışır Çalışır Çalışır
Private Çalışır Çalışmaz Çalışmaz Çalışmaz
Protected Çalışır Çalışmaz Çalışır Çalışmaz

 

 

 

  • var
    PHP 5.3 e kadar Public yerine kullanılan tanımlamaydı. Artık kullanımı durumda php dikkat uyarısı yapar, kullanımdan kalkmıştır (depricated) fakat halen çalışır.
  • public
    Fonksiyona sınıf içinden ve sınıf dışından erişime izin verir. Ayrıca Kalıtım ile aktarılır.
  • private
    Bu erişim belirteci işaretlenen öğeye sadece sınıfın içinden erişilebileceği anlamına gelir ve bu öğeler kalıtım yoluyla aktarılmaz.
  • protected
    Bu erişim belirteci işaratelenen ögeye sadece sınıfın içinden erişilebileceği fakat alt sınıflara aktarılabileceği anlamına gelmektedir.
  • extends
    Eğer sınıfımız başka bir sınıfın alt sınıfı olacaksa extends anahtar sözcüğü ile aktarılır
  • __construct
    Class tanımlanınca hiç bir fonksiyon yada değişken çağrılmadan önce otomatik ilk çalışacak fonksiyonu belirtir.
  • __destruct
    Class yok edilince veya sayfa oluşumu (HTML)  bitince çalışan fonksiyon
     
  • Classla Aynı İsimdeki Fonksiyon
    Class tanımlanınca hiç bir fonksiyon yada değişken çağrılmadan önce otomatik ilk çalışacak fonksiyonu belirtir.

 

<?php

class TestKlasi
{
    public $HerkeseAcik = 'Bana herkes ulaşabilir. '; //Herkese açık
    protected $Korunmus = 'Sadece klas içerisinden olanlar bana ulaşır. Beni kendisine ekleyen klasslarda kullanabilir. '; //Korunmuş
    private $Ozel = 'Sadece klas içerisinden olanlar bana ulaşır. Beni kendisine ekleyen klasslarda kullanamaz. '; //Özel

    var $SiradanDegisken='Ben sıradanım...';
       
    function EkranCiktisi()
    {
        echo $this->HerkeseAcik;
        echo $this->Korunmus;
        echo $this->Ozel;
    }
}

$YeniKlas = new TestKlasi(); //Klas türetiliyor

echo $YeniKlas->HerkeseAcik; // Works

echo $YeniKlas->Korunmus; // Fatal Error

echo $YeniKlas->Ozel; // Fatal Error

$YeniKlas->EkranCiktisi(); // Tüm Değişken İçeriğini Gösterir (Public, Protected and Private)

?>

 
Kalıtım (extend) yoluyla aktarılan class ve public, private, protected fonksiyonlara örnek
 

<?php

class BenimKlas
{
    // Contructors must be public
    public function __construct() {
                echo "Yapılandırıcı<br />";
        }

    // Declare a public method
    public function HerkeseAcik() {
                echo "Herkese Açık Fonksiyon<br />";
        }
       
    // Declare a protected method
    protected function Korunmus() {
                echo "Korunmuş Fonksiyon<br />";
        }

    // Declare a private method
    private function Ozel() {
                echo "Özel Fonksiyon<br />";
        }
       
    // This is public
    function Herhangi()
    {
        $this->HerkeseAcik();
        $this->Korunmus();
        $this->Ozel();
    }
}

$BenimKlastan = new BenimKlas;

$BenimKlastan->HerkeseAcik(); // Çalışır

$BenimKlastan->Korunmus(); // Klas dışından çağrıldığından çalışmaz

$BenimKlastan->Ozel(); // Klas dışından çağrıldığından çalışmaz

$BenimKlastan->Herhangi(); // Public, Protected and Private fonksiyonlar çalışaktır
                                                        //çünkü bu fonksiyonlar Herhangi fonksiyonun içerisinden çağrılır.
                                                        //Herhangi fonksiyonuda class içerisindedir.


class SeninKlas extends BenimKlas
{
    // This is public
    function Herhangi()
    {
        $this->HerkeseAcik(); //BenimKlasstan deviralınan fonksiyon
        $this->Korunmus(); //BenimKlasstan deviralınan fonksiyon protected olduğundan aktarıldığı klas içerisindede çalışır.
        $this->Ozel(); //BenimKlasstan deviralınan fonksiyon aktarıldığı klasta çalışmaz
    }
}

$SeninKlastan = new SeninKlas;

$SeninKlastan->HerkeseAcik(); // Çalışır.

$SeninKlastan->Korunmus(); // BenimKlasstan deviralınan fonksiyon protected olduğundan class dışında çalışmaz

$SeninKlastan->Ozel(); // BenimKlasstan deviralınan fonksiyon, private olduğundan bulunduğu class dışında çalışmaz.

$SeninKlastan->Herhangi(); // Public fonksiyon deviralınsada class içinde ve dışında çağrılırsa çalışır.
                           // Protected fonksiyon class içinde çağrılırsa sadece çalışır ve başka klasa aktarılabilir.
                          // Private fonksiton class içide sadece çalışır. Dışında ve aktarıldığında çalışmaz.
?>

 

 

 

Yorumunuzu Ekleyin

PHP Data Objects (PDO) Nedir?
Yükleniyor...