Konular

EBooklar

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





  • Kurallı İfadeler (regex Engine)
  • Kurallı İfadeler (regex Engine) ~ 31,836

    Bir regex'in gerçekte nasıl çalıştığını bilmek daha efektif çalışan regex ifadeleri oluşturmamızı ve regex'leri daha isabetli oluşturmamızı sağlar. Bu yazımızda oluşturduğunuz regex ifadelerinin neden beklediğiniz sonuçları vermediğini ve umduğunuz eşleşm...



  • PHP ile PDF dosya oluşturmak
  • PHP ile PDF dosya oluşturmak ~ 25,279

    Php ile yeni bir pdf dosyası oluşturmak : Öncelikle php ile pdf işlemleri yapmak için bir pdf kütüphanesine ihtiyacınız olacak



  • PHP nedir?
  • PHP nedir? ~ 23,843

    HTML kodlarının arasına yerleştirilmiş php kodlarından ayrıştırıp işleyerek sonuçta saf HTML formatında bir çıktı üretmek ve Web sunucusuna iletmektir.


  • $_FILES
  • $_FILES ~ 22,590

    Örnek kod ve açıklamalar



  • Oop - Nesne Yönelimli Programlama
  • Oop - Nesne Yönelimli Programlama ~ 19,638

    Artık ister istemez her programcının bulaştığı bu teknik hakkında sayısız makale yazılmıştır bu güne kadar. Bu makale de onlardan biri


  • Xampp Kurulumu ~ 18,765

    Xampp apache, mysql, php ve phpmyadmin için kolay ve basit kurulum sağlayan bir uygulamadır.




  • Php İle Excel Dosyası Oluşturmak
  • Php İle Excel Dosyası Oluşturmak ~ 17,938

    Genelde, herhangi bir biçimlendirme söz konusu olmadığında, veritabanındaki bir bilgiyi ya da başka bir tabloyu excel ortamına aktarmak için csv yöntemini kullanırım. Bu yöntem herkesin bildiği gibi, her sütunu tab ya da noktalı virgül gibi bir karakterle...


  • Verileri doğrulamak için PHP ile filtreleme işlemleri
  • Verileri doğrulamak için PHP ile filtreleme işlemleri ~ 17,693

    Ziyaretçilerden gelen verilerin istediğimiz formata uygunluğunu kontrol etmeliyiz ki, güvenlik açığı yaratmayalım. E-postaları, web adreslerini, bilgi girişlerini ve dahasını Her birine uygun farklı fonksiyonlar yazıldı bu vakte kadar. Ancak PHP 5.2.0 ve ...


  • En iyi 25 php template motoru
  • En iyi 25 php template motoru ~ 17,111

    Php tabanlı web siteleri dizayn ederken, php kodlarını html kodlar arasına gömeriz. Fakat gün gelir bu kodları düzenlemek istediğimizde çok büyük bir çaba gerektirir. Bu tarz durumlarla başa çıkabilmek için ve daha kararlı bir sistem kodlamak için t...


  • Php ile Oturum Yönetimi (SESSION)
  • Php ile Oturum Yönetimi (SESSION) ~ 17,061

    Türkçesi oturum anlamına gelen session bilgilerin saklanması için kullanılan mantıksal bir nesnedir.Session oturum yönetimini kullanarak şifreli sayfalar oluşturarak ve bu sayfaları belirlediğiniz kullanıcıların görmesini sağlayabilirsiniz.


  • Php Mysql to XML
  • Php Mysql to XML ~ 16,851

    Bu yapıyı geliştirerek mysql veritabanınızdaki datalarınızı xml standartlarına dönüştürebilirsiniz.



  • Dizi Tanımlamaları
  • Dizi Tanımlamaları ~ 16,819

    PHP’de array tanımlayıcısını kullanarak içerisinde elemanları yerleştirmek yoluyla ya da index numarasını köşeli parantezler içerisinde belirterek atama yaparak dizi oluşturmak mümkündür


  • $_SERVER
  • $_SERVER ~ 16,585

    $_SERVER host bilgileri, header bilgileri, yollar ve script yolları gibi bilgileri içeren bir dizidir. Bu dizideki değerler web server tarafından üretilir. Tüm server yazılımlarının, tüm değerleri atayacağına dair bir kesinlik yoktur. Yazılım bazıl...









  • $_REQUEST
  • $_REQUEST ~ 13,662

    $_GET, $_POST, ve $_COOKIE değişkenlerini içeriğinden meydana gelen çağrışımlı bir dizidir. Bu değişken bir superglobal olduğu için tüm alanlarda (scope) geçerlidir ve bundan dolayıdır ki global $_REQUEST ; şeklinde bir tanımlamaya ihtiyaç duymaz. Eğer ...