Gökalp Kuşçu

yoğun bu aralar

PHP Nesneye dayalı programlama private deyimi

with 3 comments

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, 38 hits)

Written by Gökalp Kuşçu

Nisan 28th, 2010 at 2:19 pm

3 Responses to 'PHP Nesneye dayalı programlama private deyimi'

Subscribe to comments with RSS or TrackBack to 'PHP Nesneye dayalı programlama private deyimi'.

  1. self deyimini biraz açıklarmısın

    mass

    25 May 10 at

  2. http://tr.php.net/search.php >> self deyimi için

    Gökalp Kuşçu

    4 Haz 10 at

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

    Gökalp Kuşçu

    14 Haz 10 at

Leave a Reply