Php Dersleri

Php Nesne Yönelimli Programlama | Protected Deyimi

Protected komutuyla oluşturulan metot ve argümanlara yalnızca sınıf içerisinden ve türetilen sınıf içerisinden erişilebilinir. Protected olarak tanımlanan bir metot veya argümana sınıf dışından erişilemez. Bu bağlamda private deyimiyle de benzerlik göstermektedir. Fakat protected, miras olarak belirlenen extends ile erişilebilir duruma gelmektedir.

class dersler{
     public function giris(){
          echo "Merhaba, Hoş Geldiniz.";
     }
}

$php	= new dersler();
$php->giris();

Yukarıdaki örnekte bir sınıf içerisinde yer alan public deyimi yer almaktadır. Public, herkese açık bir ifade olduğu için aşağıda tanımlanan bilgiler doğrultusunda gereli işlemi gerçekleştirecektir. Fakat public deyimini protected ile değiştirdiğimizde çalışmasını durdurarak hata verecektir. Bu hata protected deyiminin direkt erişime kapalı olmasından kaynaklanmaktadır. Bunun için farklı bir public tanımlaması içerisinden protected deyimi çalıştırılmalıdır. Yani şöyle;

class dersler{
     protected function giris(){
          echo "Merhaba, Hoş Geldiniz.";
     }

     public function ozel_giris(){
          echo $this->giris();
     }
}

$php	= new dersler();
$php->ozel_giris();

Tanımda da söylediğim gibi protected deyimine direk ulaşım yapılmadığı için, public deyimi altında belirlenen fonksiyonda protected deyimini seçerek yazdırdık. Yazdırma işlemi için $php->giris(); yerine $php->ozel_giris(); değerini kullandık. Çünkü bu değer, public ile tanımlandığı için dışarıya bilgi vermektedir.

Buraya kadar anlatmış olduğum kullanımın aynısını private deyimide yapmaktadır. Peki öyleyse protected deyiminin private deyiminden farkı nedir? Gelin bu sorumuza da cevap bulalım.

Yukarıdaki örneklerde sadece tek bir sınıf içerisinde işlemler gerçekleştirdik. İşin içerisine ikinci bir sınıf tanımlaması girdiğinde private ve protected deyimlerinin ayrıştırğını göreceksiniz. Çünkü private sadece belirlenen sınıf içerisinde çalışırken, protected farklı sınıflardan çağırıldığında da işlem yapmaktadır. Yani korunaklı ve farklı sınıflar tarafından da kullanılmasını istiyorsanız o zaman protected deyimini tercih etmeniz gerekmektedir.

class konular{
     protected  function icerik(){
          echo "Echo ve Print Kullanımı";
     }
}

class dersler extends konular{
     public function ozel_giris(){
          echo $this->icerik();
     }
}

$php	= new dersler();
$php->ozel_giris();

Bu şekilde tanımlanan farklı bir sınıfta yer alan protected deyimine ulaşmak mümkündür. Dersler sınıfında yer alan extends kısaca tanımlanan diğer sınıftan bilgileri almaktadır. Bu karşınıza miras olarak çıkacaktır. Farklı bir sınıftan alınan değer protacted ile çalışırken, private kullanımında çalışmayacaktır. Aralarında ki en temek fark budur.

Bir önceki yazım olan Nesne Yönelimli Programlama | Public ve Private Deyimi başlıklı makalemde Nesne yönelimli programlama, oop ve oop sınıfı hakkında bilgiler vermekteyim.

İlgilizi Çekecek Konular

Bot İle HTML Tagı Bulunmayan Verileri Çekme İşlemi | File();

ibrahim Çevrük

Php’de Getimagesize Fonksiyonu Kullanımı

ibrahim Çevrük

Php İle Tekrarsız Rastgele Sayı Üretme

ibrahim Çevrük

Yorum Giriniz