Classlarda Kullanılan Özel Kelimeler
Public, private, protected, extends, _construct
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