PHP Nesneye dayalı programlama private deyimi

PHP için nesneye dayalı  programlama deyimlerinden “private” deyimini açıklamaya çalışacağım.

Private :

    Sadece class içersinde kullanmaya yetkili sabit bir değişken  veya methot yapmak istediğimizde,  ilgili kelimelerin başına “private” deyimini ekleyerek bu işlemi gerçekleştiriyoruz. Bu deyim ile oluşturulan sözcükler dışarıdan veya başka bir class içerisinden erişilemezler.
  • Eğer bu sözcüklere dışarıdan erişmeye çalışırsanız, Fatal Error verecektir. Bir önceki konuda geçen örnek yapısı üstünden gidecek olursak.

<?php
class oop_bir {

    private $name;
    public function getName(){
     return $this->name.self::getLength();
   }

    public function setName($name){
      $this->name = $name;
   }
   //Dışarıdan erişilemez methot
   private function getLength(){
    return strlen($this->name);
   }
}

   $obj = new oop_bir();
    $obj->setName("Gokalp");

   //OUT: Gokalp6
   echo $obj->getName();

   //OUT: Fatal Error :  Call to private method oop_bir::getLength()
   echo $obj->getLength();  // Error!
?>

Gördüğünüz gibi sınıfımız(class) içerisinde 3 adet methoda sahibiz, bunlardan ikisi public her yerden ulaşılabilir, diğeri ise private sadece kendi classı içerisinden ulaşılabilir,  değişkenimiz yani “private $name” yine sadece sınıfımız içerisinden ulaşılabilir.

Oluşturduğumuz “$obj” nesnesi, bize sınıfımız içindeki methodları kullanmamızı sağlayacak, tabi ki public olanları, ilk olarak içerideki private değişkenime “setName()” ile Gokalp değerini atıyorum, daha sonra “getName()” methodu içinden private methodumu çağrıyorum ve bana gereken işlem sonucu return ediyor. Böylece hem ismimi hemde bunun uzunluğunu hesaba katıp bana gerekli işlemi dönderiyor ve bunu echo ile ekrana basıyorum.

Tips:

Eğer private methoda veya değişkene ulaşmaya çalışırsam,

echo $obj->getLength(); // Error! gibi

Fatal error: Call to private method oop_bir::getLength() from context ” in C:\**\index.php on line 26

Oluşan hata bu şekilde gösterilecektir, private bir tanımlamayı çağırdınız!

Tips-2:

Class içerisinde yazdığınız methodlara ulaşmak için “self” deyimini kullanabilirsiniz.

self::getLength(); gibi…

Tips-3:

PHP5 ile geliştirilen parent deyimi extend edilen class içindeki, methodları çağırmak için kullanılmaktadır, aynı şekilde PHP5 ile geliştirilen self deyimi aynı class içindeki methodları çağırmak için kullanılmaktadır, bu işlemler PHP4 ile $this deyimi ile gerçekleştirilmektedir.

İlgili dosyayı buradan indirebilirsiniz….

  Private PHP Dosyası (508 bytes, 110 hits)

Tags: , , , ,

  1. mass’s avatar

    self deyimini biraz açıklarmısın

  2. Gökalp Kuşçu’s avatar

    artı bir açıklama yazıda, tips-3 şeklinde bahseldilmiştir kolay gelsin

Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>